KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/mguerinweb/Offline_Archive/DBAdmin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/mguerinweb/Offline_Archive/DBAdmin/FreeEdit.asp
<%

'1 Click DB copyright 1997-2002 David Kawliche, AccessHelp.net

'1 Click DB technology is protected by national and international
'laws and treaties.  Never use, distribute, or redistribute
'any software and/or source code in violation of its licensing.

'Use of this software and/or source code is strictly at your own risk.
'All warranties are specifically disclaimed except as required by law.

'IMPORTANT : THIS CODE USES PASS-THROUGH SECURITY !
'
'To enforce application security, set logins and permissions
'for all web server and database users as appropriate.

'For more information see : http://1ClickDB.com
        
'**Start Encode**
%>
<!--#INCLUDE FILE=ocdFreeInit.asp-->
<!--#INCLUDE FILE=ocdForm.asp-->
<!--#INCLUDE FILE=ocdGrid.asp-->
<!--#INCLUDE FILE=ocdFunctions.asp-->
<%
dim objForm, rsDef, evDef, evDefresult, hasdef, fkrelatedfield, fkrelatedtable, fldF, strName, intSize, tQS, bintSize, rsFK, HasFK, intFKColumnCount, strFKColumnName, strPKTables, elePKName, eleFKName, strFKTables, arrPKTables, arrFKTables, prevPKTable, prevFKTable, cat, tblCat, astrTemp, keytblcat, colkeytblcat, rsdefeval, arrrsdef, intrsdef, rtmpqs, intI, arrHomeField, arrfkRelatedField, prevcolumn, objNDBrowseGrid, homefield, showrelated, intcountgrids, strSQLTName, varFormNum


if Request.Querystring("SQLFrom") = "" Then
	Response.clear
	Response.Redirect ("FreeSchema.asp"  )
End if

set objForm = New ocdForm
objForm.FormNullToken = ocdFormNullToken
objForm.SQLConnect = ndnscSQLConnect 'ADO Connect String, including uid and pw if necessary
objForm.AllowMultiDelete = True
objForm.SQLUser = ndnscSQLUser
objForm.SQLPass = ndnscSQLPass
objForm.SQLSelect = "*" 'Database Field List 
objForm.SQLFrom = Request.QueryString("sqlFrom")'Database Table Name
objForm.AllowEdit = True
objForm.AllowAdd = True
objForm.AllowDelete = True
objForm.HTMLCheckField = "<SPAN CLASS=Warning> Check  </SPAN>"
objForm.HTMLAttribSaveBtn = "TYPE=""Submit"" Value=""Save"" CLASS=""Submit"""
objForm.HTMLAttribCancelBtn = "TYPE=""Submit"" Value=""Cancel"" CLASS=""Submit"""
objForm.HTMLAttribNewBtn = "TYPE=""Submit"" Value=""New"" CLASS=""Submit"""
objForm.HTMLAttribDeleteBtn = "TYPE=""Submit"" Value=""Delete"" CLASS=""Submit"""
objForm.Open
if (ocdDataBaseType =  "SQLServer") and request.querystring("ocdShowRelated") <> "Yes" Then
	ocdSelectForeignKey = false
	ocdShowRelatedRecords = false
End if

hasFK = False
select case ocdDatabaseType
	Case "Access"
		strSQLTName = CSTR(FormatForSQL(request.querystring("SQLFROM"), ocddatabasetype, "RemoveSQLIdentifier"))
	Case "SQLServer"
		strSQLTName = GetSQLIDFPart(request.querystring("SQLFROM"),"SQLOBJECTNAME", ocdQuotePrefix,ocdQuoteSuffix)
End Select


'React to Form events
sub ocdBeforeUpdate ()
	'not used	
End sub

sub ocdAfterUpdate()
	'not used
end sub

sub ocdBeforeInsert ()
	'not used	
End sub

sub ocdAfterInsert()
	'not used
end sub

sub ocdAfterDelete()
	dim strADURL, tmpadqs
	if request.querystring("SQLFROM_A") <> "" Then
		strADURL = "FreeBrowse.asp?"
		for each tmpadqs in request.querystring
			Select Case UCASE(tmpadqs) 
				Case "SQLFROM","SQLSELECT","SQLWHERE"
				Case Else
					strADURL = strADURL & tmpadqs & "=" & Server.URLEncode(request.querystring(tmpadqs)) & "&"
			End Select
		next
		response.clear
		response.redirect strADURL
	End if
end sub

sub ocdBeforeDelete()
	call writeheader("")
	dim tmpeqs
	Response.write ("<FORM ACTION=""")
	Response.write (request.servervariables("SCRIPT_NAME") & "?")
	for each tmpeqs in request.querystring
		if UCase(tmpeqs) <> "OCDEDITDELETE" Then
			Response.write (tmpeqs & "=" & Server.URLEncode(request.querystring(tmpeqs)) & "&")
		end if
	next
	Response.write (""" method=post>")
	Response.write ("<CENTER><TABLE WIDTH=""50%"" CLASS=""DialogBox""><TR><TH STYLE=""text-align:left;background-color:navy;color:white;"" ALIGN=LEFT><DIV STYLE=""color:white;"">Confirm Delete</DIV></TH><TR><TD BGCOLOR=Silver VALIGN=TOP>")
	Response.write ("<TABLE><TR CLASS=DIALOGBOXROW><TD VALIGN=TOP><IMG SRC=AppWarning.gif border=0 ALT=""Warning""></td><TD>&nbsp;</td><TD VALIGN=TOP><P>")
	if objForm.SQLID <> "" or objForm.SQLWHERE <> "" THen
		Response.write ("<b>Are you sure you want to delete the selected record(s)?</b><P>This action cannot be undone.<P><INPUT TYPE=Submit SPAN CLASS=Submit Name=ocdEditConfirm Value=""OK"">&nbsp;<INPUT TYPE=submit Name=ocdEditCancel CLASS=Submit Value=""Cancel""><INPUT TYPE=hidden Name=ocdEditCancelPage CLASS=Submit Value=""FreeBrowse.asp""><INPUT TYPE=hidden Name=ocdEditDelete CLASS=Submit Value=""Delete""></td></tr></table></TD></TR></TABLE></CENTER>")		
	Else
		Response.write ("<b>No Records Were Selected</b><P>You may use your browser's back button to continue.</td></tr></table></TD></TR></TABLE></CENTER>")		
	End if
	Response.write ("</form>")
	Call writefooter("")
	response.end
end sub
	
if (ocdSelectForeignKey or ocdShowRelatedRecords ) AND (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0" OR objForm.ADOConnection.provider ="SQLOLEDB.1") Then
	set rsFK = objForm.ADOConnection.OpenSchema(27)
	
	if err = 0 Then
		if not rsFK.eof then
			HasFK = True
			strPKTables = ""
			strFKTables = ""
			prevPKTable = ""
			prevFKTable = ""
			do while not rsFK.eof
				if (rsFK.Fields("PK_TABLE_NAME").Value) = strSQLTName and (rsFK.Fields("FK_TABLE_NAME").Value) <> (prevFKTABLE) Then
					prevFKTable = (rsFK.Fields("FK_TABLE_NAME").Value)
					strFKTables = strFKTables & (rsFK.Fields("FK_TABLE_NAME").Value) & ","
				end if
				if (rsFK.Fields("FK_TABLE_NAME").Value) = strSQLTName and (rsFK.Fields("FK_NAME").Value) <> (prevPKTABLE) Then
					prevPKTable = (rsFK.Fields("FK_NAME").Value)
					strPKTables = strPKTables & (rsFK.Fields("FK_NAME").Value) & ","
				end if
				rsFK.movenext
			loop
			if len(strPKTables) > 0 then
				strPKTables = left(strPKTables, len(strPKTables)-1)
			End if
			if len(strFKTables) > 0 then
				strFKTables = left(strFKTables, len(strFKTables)-1)
			End if
		Else
			rsFK.close
			set rsFK = nothing
		End if
	Else
		set rsFK = nothing
		err.clear
	End if
End if
'zresponse.write hasFK

Call WriteHeader("")
response.flush


if not cbool(cint(ndnscCompatibility) and ocdNoJavaScript) Then
	varFormNum = "0"
	Response.write (vbCRLF & "<script TYPE=""text/javascript"" Language=""JavaScript"">" & vbCRLF)
	Response.write ("<!--" & vbCRLF)
	Response.write ("function doloadbin() {" & vbCRLF)
	Response.write ("	if (!document.forms[" & varFormNum & "].ocdbinarydisplay.options[0].selected){" & vbCRLF)
	Response.write ("	vartmp = document.forms[" & varFormNum & "].action;" & vbCRLF)
	Response.write ("	document.forms[" & varFormNum & "].action = ""ocdDisplayBinary.asp?")
	for each rtmpqs in request.querystring
		if UCase(rtmpqs) <> "SQLIDFIELD" Then
			Response.write (rtmpqs & "=" & Server.URLEncode(Request.querystring(rtmpqs)) & "&")
		end if
	next
	Response.write (""";" & vbCRLF)
	response.write (vbCRLF)
	Response.write (vbCRLF)
	varFormNum = 0
	Response.write ("	if (!document.forms[" & varFormNum & "].ocdbinarydisplay.options[7].selected){" & vbCRLF)
	Response.write ("	document.forms[" & varFormNum & "].target = ""_blank"";" & vbCRLF)
	Response.write ("}" & vbCRLF)
	Response.write ("	document.forms[" & varFormNum & "].submit();" & vbCRLF)
	Response.write ("	document.forms[" & varFormNum & "].action = vartmp;" & vbCRLF)
	Response.write ("	document.forms[" & varFormNum & "].target = ""_self"";" & vbCRLF)
	Response.write ("}" & vbCRLF)
	Response.write ("}" & vbCRLF)
	Response.write ("// -->" & vbCRLF)
	Response.write ("</script>" & vbCRLF)
End if

Response.Flush
Response.write ("<SPAN CLASS=Information> ")
if Request.QueryString("sqlid") = "" and request.querystring("SQLWHERE") = "" Then
	 Response.write ("Add Record To ")
Else
	 Response.write ("Edit Record In ")
End if
Response.write (" <A HREF=""Freebrowse.asp?sqlfrom_a=" & Server.URLEncode(request.querystring("sqlfrom")) & "&amp;")
for each tQS in Request.Querystring
	if UCASE(tQS) <> "SQLID" AND UCASE(tQS) <> "SQLFROM" AND UCASE(tQS) <> "NDBTNDELETE" AND UCASE(tQS) <> "SQLFROM_A" and UCASE(tQS) <> "ACTION" and UCASE(tQS) <> "SQLWHERE" Then
		Response.write (tQS  & "=" &  Server.URLEncode(Request.Querystring(tQS)) & "&amp;")
	End if
next
Response.write (""">")
Response.write ("" & Request.Querystring("SQLFrom") )
Response.write ("</a>")
Response.write ("</SPAN>")
Select Case UCASE(ocdDatabaseType)
	Case "SQLSERVER"
		Response.write (" <A CLASS=MENU HREF=""" & ocdPageName & "?")
		If request.querystring("OCDSHOWRELATED") = "Yes" Then
			response.write "ocdShowRelated=&amp;"
		Else
			response.write "ocdShowRelated=Yes&amp;"
		End if
		for each tQS in Request.Querystring
			if UCASE(tQS) <> "OCDSHOWRELATED" THen
				Response.write (tQS  & "=" &  Server.URLEncode(Request.Querystring(tQS)) & "&amp;")
			End if
		next
		If request.querystring("OCDSHOWRELATED") = "Yes" Then
			Response.write (""">(Hide ")
		Else
			Response.write (""">(Show ")
		End if
		Response.write ("Related)</A>")
End Select

Response.write ("<P>")
Response.Flush
'start writing main body

objForm.Display("STATUS")
objForm.Display("START")
Response.write ("<TABLE>")
if ocdShowDefaults and request.querystring("Sqlid") = "" and request.querystring("sqlwhere") = "" Then
	if (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
		set rsdef = objForm.ADOConnection.OpenSchema(4,Array(Empty,Empty,CSTR(FormatForSQL(request.querystring("SQLFROM"), ocddatabasetype, "RemoveSQLIdentifier")))) 'columns
		if rsdef.eof then
			ocdShowDefaults = False
		Else
			arrrsdef = rsdef.getrows (,,Array("TABLE_NAME","COLUMN_NAME","COLUMN_DEFAULT"))
			rsdef.close
			set rsdef = nothing
		End if
		set rsdefeval = server.createobject("ADODB.Recordset")
 	ElseIf (objForm.ADOConnection.provider = "SQLOLEDB.1")Then
		set rsdef = objForm.ADOConnection.OpenSchema(4,Array(Empty,Empty,CSTR(GetSQLIDFPart(request.querystring("SQLFROM"),"SQLOBJECTNAME", ocdQuotePrefix,ocdQuoteSuffix)))) 'columns
		if rsdef.eof then
			ocdShowDefaults = False
		Else
			arrrsdef = rsdef.getrows (,,Array("TABLE_NAME","COLUMN_NAME","COLUMN_DEFAULT"))
			rsdef.close
			set rsdef = nothing
		End if
		set rsdefeval = server.createobject("ADODB.Recordset")
	Else
		ocdShowDefaults = False
	End if					
Else
	ocdShowDefaults = False
End if				
' format each field according to its type
For Each fldF in objForm.ADORecordset.Fields
	strName = fldF.Name
	
	Select Case strName 'check for replication columns
		Case "Gen_Description"
		'response.write fldF.type
	End Select
	intSize = fldF.DefinedSize
	if intSize = -1 Then
		intSize=50
	End if
	intFKColumnCount = 0
	strFKColumnName = ""
	fkrelatedtable = ""
	fkrelatedfield = ""
	Select Case fldF.Type
		Case 205, 128, 204 'adLongVarBinary, adBinary, adVarBinary
			Response.write ("<TR><TD nowrap valign='top' align=right>")
			Response.write ("<SPAN CLASS=""FieldName"">" & strName & ":</SPAN>")
			Response.write (" &nbsp;&nbsp;")
			Response.write ("</TD>")
			Response.write ("<TD align=left valign=baseline>")
			Response.write ("<SPAN Class=Information>Binary&nbsp;Data</SPAN> ")
			Response.write ("</TD></TR>")
		Case Else
			hasdef=false
			if ocdShowDefaults and request.querystring("sqlid") = "" and request.querystring("sqlwhere") = "" and not ocdDatabaseType = "Oracle" Then
				intrsdef = 0
					
				do while intrsdef < ubound(arrrsdef,2)
				 if ocdDataBaseType = "Access" Then				
				 	astrTemp =  FormatForSQL((request.querystring("sqlfrom")),ocddatabasetype,"REMOVESQLIDENTIFIER")
				ElseIf ocdDataBaseType = "SQLServer" THen
astrTemp =  GetSQLIDFPart(request.querystring("SQLFROM"),"SQLOBJECTNAME", ocdQuotePrefix,ocdQuoteSuffix)				
				End if
					if astrTemp = (arrrsdef(0,intrsdef)) Then
						if UCase(strName) = UCase(arrrsdef(1,intrsdef)) Then
							if not isnull(arrrsdef(2,intrsdef)) Then
								evdef = arrrsdef(2,intrsdef)
								hasdef = true
								exit do
							End if
						end if
					End if
					intrsdef = intrsdef + 1
				Loop
				if not hasdef then
					evdefresult = "" 
				Else
					call rsdefeval.open ("Select " & evdef & " as expr1", objForm.ADOConnection)
					evdefresult = rsDefeval.Fields(0).Value
					rsdefeval.close
				End if
			Else
				evdefresult = ""
			End if
			if isnull(evdefresult) then
			
				evdefresult = ""
			End if
			IF ocdSelectForeignKey and HasFK  and not ocdReadOnly Then
				
				rsFK.movefirst
				do while not rsFK.EOF
					if (rsFK.Fields("FK_TABLE_NAME").Value) = strSQLTName and rsFK.Fields("FK_COLUMN_NAME").Value = strNAME Then	
						intFKColumnCount = intFKColumnCount + 1
						strFKColumnName = strName
						fkrelatedtable = rsFK.Fields("PK_TABLE_NAME").Value
						fkrelatedfield = rsFK.Fields("PK_COLUMN_NAME").Value
					end if
					rsFK.movenext
				loop
			end if
			Response.write ("<TR><TD nowrap valign='top' align=right>")
			Response.write ("<SPAN CLASS=""FIELDNAME"">" & strName & ":</SPAN>")
			if CBool(fldF.Attributes and &H00000020) Then 'adFldIsNullable
				Response.write (" &nbsp;&nbsp;")
			Else
				Response.write (" <SPAN CLASS=""Warning"">*</SPAN>")
			end if
			Response.write ("</TD>")
			if intfkcolumncount = 1 Then 'multicolumns not supported as dropdowns
				Response.write ("<TD align=left valign=top>")
				if objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0" Then
					Response.write (objForm.DisplayFieldAsRelatedValues(Replace(fldF.Name,"""","""""") ,"Select [" & fkRelatedField & "] From [" & fkRelatedTable & "] Order By [" & fkRelatedField & "]",evdefresult,"CLASS=DataEntry"))
				Else
					Response.write (objForm.DisplayFieldAsRelatedValues(Replace(fldF.Name,"""","""""") ,"Select """ & fkRelatedField & """ From """ & fkRelatedTable & """ Order By """ & fkRelatedField & """",evdefresult,"CLASS=DataEntry"))
				End if
				Response.write ("</TD></TR>")
			Else
				Select Case fldF.Type
					Case 201, 203 'adLongVarChar, adLongVarWChar
						Response.write ("<TD align=left valign=top>")
						Response.write (objForm.DisplayFieldAsMemo(strName,evdefresult,"ROWS =""5"" COLS=""35"" CLASS=""DataEntry"" "))
						if not cbool(cint(ndnscCompatibility) and ocdNoJavaScript) and Not ocdReadOnly Then
							Response.write ("&nbsp;<A HREF="""" onclick=""javascript:window.open('ocdZoomText.asp?CallingForm=" & varformnum & "&amp;TextField=" & server.urlencode("ocdTF" & strName) & "', 'zoomtext','height=400,width=600,scrollbars=yes');return false""><IMG ALT=""Zoom Text"" SRC=""GridLnkEdit.gif"" Border=0></A>")
Response.write (vbCRLF & "<script TYPE=""text/javascript"" Language=""JavaScript"">" & vbCRLF)		
							Response.write ("if (parseInt(navigator.appVersion) >= 4) {" & vbCRLF)
							Response.write ("	if (navigator.appName == ""Microsoft Internet Explorer"") {" & vbCRLF)
							Response.write ("document.write ('<IMG ALT=\""HTML Edit\"" SRC=\""AppHTMLEdit.gif\"" Border=0 onClick=\""javascript:window.open(\'ocdHTMLEdit.asp?CallingForm=" & varformnum & "&amp;TextField=" & server.urlencode("ocdTF" & strName) & "\', \'zoomtext\',\'height=400,width=600,scrollbars=yes\')\"">');" & vbCRLF)
							Response.write ("	}" & vbCRLF)
							Response.write ("}" & vbCRLF)
							Response.write ("</SCRIPT>" & vbCRLF)
						End if
						Response.write ("</TD></TR>")
					Case 11 'adBoolean
						Response.write ("<TD align=left valign=top>")
												Response.write ("<TD align=left valign=top>")
						If not CBool(fldF.Attributes and &H00000020) Then
						Response.write (objForm.DisplayFieldAsCheckBox(strName,True,False,True,""))
						Else
						Response.write (objForm.DisplayFieldAsTextBox(strName,"","SIZE=""5"" MAXLENGTH=""12"" CLASS=""DataEntry"""))

						Response.write ("</TD></TR>")
						End if
					Case  133, 135, 134, 7 'adDBDate, adDBTimeStamp, adDBTime, adDate
						Response.write ("<TD align=left valign=top>")
						Response.write (objForm.DisplayFieldAsTextBox(strName,evdefresult, "SIZE=""20"" MAXLENGTH=""50"" CLASS=""DataEntry"" "))
						if not cbool(cint(ndnscCompatibility) and ocdNoJavaScript) and not ocdReadOnly Then
							Response.write ("<A HREF="""" onClick=""javascript:window.open('ocdPickDate.asp?CallingForm=" & varformnum & "&amp;DateField=" & server.urlencode("ocdTF" & strName) & "&amp;InitialDate=' + document.forms[" & varformnum & "].elements['" & ("ocdTF" & strName) & "'].value, 'calendar','height=250,width=250,scrollbars=no');return false""><IMG WIDTH=17 HEIGHT=17 ALT=""Click for Calendar"" SRC=AppCalendar.gif BORDER=0></A>")
						End if
						Response.write ("</TD></TR>")
					Case 6 'adCurrency
						Response.write ("<TD align=left valign=top>")
						Response.write (objForm.DisplayFieldAsTextBox(strName,evdefresult, "SIZE=""12"" MAXLENGTH=""50"" CLASS=""DataEntry"" "))
						Response.write ("</TD></TR>")
					Case 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 3 'adBigInt, adDecimal, adDouble, adNumeric, adSingle, _
						' adSmallInt, adTinyInt, adUnsignedBigInt, adUnsignedInt, _
						' adUnsignedSmallInt, adUnsignedTinyInt,adInteger
						Response.write ("<TD align=left valign=top>")
						Response.write (objForm.DisplayFieldAsTextBox(strName,evdefResult, "SIZE=""24"" MAXLENGTH=""50"" CLASS=""DataEntry"" "))
						Response.write ("</TD></TR>")
					Case Else					
						Response.write  ("<TD align=left valign=top>")
						if intSize > 35 then
							bintSize = 35
						Else
							bintSize = intSize
						End if
						Response.write (objForm.DisplayFieldAsTextBox(strName,evdefresult, "SIZE=""" & bintSize & """ MAXLENGTH=""" & intSize & """ CLASS=""DataEntry"" "))
						Response.write ("</TD></TR>")
				End Select
			End if
	End Select
	Response.flush
	response.clear
Next

If HasFK Then
	rsFK.close
	set rsFK = nothing
End if
if ocdShowDefaults Then
	set rsdefeval = nothing
End if
Response.write ("</TABLE><p>")
if not ocdReadOnly Then
	objForm.DISPLAY("BUTTONS")
End if
objForm.DISPLAY("END")	' and finally return the table
Response.write ("<P><SPAN CLASS=""Warning"">*</SPAN> indicates required field")
Response.write ("<P>")
response.flush
if err.number <> 0 Then
	call writefooter("")
end if
If ocdShowRelatedRecords  Then
	Select Case ocdDatabaseType
		Case "Access","SQLServer"
			If ((objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0" OR objForm.ADOConnection.provider ="SQLOLEDB.1") and (Request.Querystring("SQLID") <> "" or request.querystring("SQLWHERE") <> "") and not objForm.ADORecordset.eof) Then '
				set cat = server.createobject("ADOX.Catalog")
				if err <> 0 Then
					Response.write ("Detailed view of related records is not available, an ADOX catalog could not be created.")
					call writefooter("")
				Else
					set objNDBrowseGrid = New ocdGrid
					objNDBrowseGrid.HTMLGridButtons = "First|First;;prev|Prev;;next|Next;;last|Last;;New|New"
					 objNDBrowseGrid.HTMLSortASCLink= ""	'HTML to display inside sort ascending link
					 objNDBrowseGrid.HTMLSortDESCLink= ""	'HTML to display inside sort descending link
					 objNDBrowseGrid.HTMLFilterLink= ""
					intcountgrids = 1
					cat.ActiveConnection = objForm.ADOConnection
					'check for foreign keys field
					if strPKTables <> "" Then '*
						homefield = ""
						fkrelatedfield = ""
						arrPKTables = split(strPKTables,",") '*
						set tblcat = cat.Tables(strSQLTName)
						for each elePKName in arrPKTables
							set keytblcat = tblcat.Keys(elePKName)
							if keytblcat.type = 2 Then
								if fkrelatedfield = "" then					
									For each colkeytblcat in keytblcat.Columns
										if keytblcat.RelatedTable <> "" THen 
											prevcolumn = ""
											if homefield = "" then
												homefield = colkeytblcat.Name
												fkrelatedfield =colkeytblcat.RelatedColumn
											Elseif prevcolumn <> homefield then
												homefield = homefield & "," &  colkeytblcat.Name
												fkrelatedfield = fkrelatedfield & "," &colkeytblcat.RelatedColumn
											End if
											prevcolumn = colkeytblcat.Name
											fkrelatedtable = keytblcat.RelatedTable
										end if
									next
								End if
								if fkRelatedTable <> "" Then
									response.write ("<SPAN CLASS=Information>Related Record in <A HREF=""FreeBrowse.asp?sqlfrom_a=" & server.urlencode(fkRelatedTable) & "&amp;")
									for each tQS in Request.Querystring
										if UCASE(tQS) <> "SQLID" AND UCASE(tQS) <> "SQLFROM" AND UCASE(tQS) <> "NDBTNDELETE" AND UCASE(tQS) <> "SQLFROM_A" AND UCASE(tQS) <> "SQLORDERBY_A" AND UCASE(tQS) <> "SQLWHERE_A" AND UCASE(tQS) <> "SQLGROUPBY_A" AND UCASE(tQS) <> "SQLHAVING_A" and UCASE(tQS) <> "ACTION" and UCASE(tQS) <> "SQLWHERE" Then
											Response.write (tQS  & "=" &  Server.URLEncode(Request.Querystring(tQS)) & "&amp;")
										End if
									next
									Response.write ("""> " & fkRelatedTable & "</a></span><P>")
									objNDBrowseGrid.SQLConnect = ndnscSQLConnect
									objNDBrowseGrid.SQLUser = ndnscSQLUser
									objNDBrowseGrid.SQLPass = ndnscSQLPass
									objNDBrowseGrid.GridID = "Default" & intcountgrids
									objNDBrowseGrid.SQLSelect = "*"
									objNDBrowseGrid.SQLFrom = fkRelatedTable
									objNDBrowseGrid.SQLSelectPK = ""
									if instr(homefield,",") = 0 THen
										Select Case objForm.ADORecordset.Fields(homefield).Type
											Case 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 3 
								'adBigInt, adDecimal, adDouble, adNumeric, adSingle, _
								' adSmallInt, adTinyInt, adUnsignedBigInt, adUnsignedInt, 
								' adUnsignedSmallInt, adUnsignedTinyInt,adInteger
												if isnull(objForm.ADORecordset.Fields(homefield).Value) Then
													objNDBrowseGrid.SQLWhereExtra = "[" & fkrelatedfield & "] Is Null"
												Else
												objNDBrowseGrid.SQLWhereExtra = "[" & fkrelatedfield & "] =" & objForm.ADORecordset.Fields(homefield).Value
												End if
											Case Else
												if isnull(objForm.ADORecordset.Fields(homefield).Value) Then
												objNDBrowseGrid.SQLWhereExtra = "[" & fkrelatedfield & "] Is Null"
												Else
												objNDBrowseGrid.SQLWhereExtra = "[" & fkrelatedfield & "] ='"  & Replace(objForm.ADORecordset.Fields(homefield).Value,"'","''") & "'"
												End if
										End Select
									Else
										objNDBrowseGrid.SQLWhereExtra = ""
										arrhomefield = split (homefield,",")
										arrfkrelatedfield = split(fkrelatedfield,",")
										for intI = 0 to ubound (arrhomefield)
											Select Case objForm.ADORecordset.Fields(arrhomefield(intI)).Type
												Case 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 3 
									'adBigInt, adDecimal, adDouble, adNumeric, adSingle, _
									' adSmallInt, adTinyInt, adUnsignedBigInt, adUnsignedInt, 
									' adUnsignedSmallInt, adUnsignedTinyInt,adInteger
													if isnull(objForm.ADORecordset.Fields(arrhomefield(intI)).Value) Then
													objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrfkrelatedfield(intI) & "] Is Null AND "
													Else
														objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrfkrelatedfield(intI) & "] =" & objForm.ADORecordset.Fields(arrhomefield(intI)).Value & " AND "
													End if
											Case Else
												if isnull(objForm.ADORecordset.Fields(arrhomefield(intI)).Value) Then
													objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrfkrelatedfield(intI) & "] Is Null AND "
												Else
												objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrfkrelatedfield(intI) & "] ='"  & Replace(objForm.ADORecordset.Fields(arrhomefield(intI)).Value,"'","''") & "'" & " AND "
												End if
										End Select
									next
									objNDBrowseGrid.SQLWhereExtra = left(objNDBrowseGrid.SQLWhereExtra,len(objNDBrowseGrid.SQLWhereExtra)-5)
								End if
								objNDBrowseGrid.AllowEdit = True
								objNDBrowseGrid.AllowDelete = False
								objNDBrowseGrid.AllowAdd = False
								objNDBrowseGrid.AllowExport = False
								objNDBrowseGrid.FormEdit = "FreeEdit.asp"
								objNDBrowseGrid.SQLSelectID = -1
								objNDBrowseGrid.SQLSelectPK = ""
								objNDBrowseGrid.Open
								objndBrowseGrid.Display("GRID") 
								Response.write ("<P>")
								Response.flush
								intcountgrids = intcountgrids + 1
								homefield = ""
								fkrelatedfield = ""
							End if
						Else 'not fkey
							homefield = ""
							fkrelatedfield = ""
						End if
						homefield = ""
						fkrelatedfield = ""
					next
				End if
				if strFKTables <> "" Then '*
					homefield = ""
					fkrelatedfield = ""
					arrFKTables = split(strFKTables,",") '*
					for each eleFKName in arrFKTables '*
						set tblcat = cat.Tables(eleFKNAME)
						for each keytblcat in tblcat.Keys
							if keytblcat.type = 2 Then
								For each colkeytblcat in keytblcat.Columns
									if (keytblcat.RelatedTable) = strSQLTName Then
										showrelated = true
										fkrelatedtable = keytblcat.RelatedTable
										if homefield = "" Then
											homefield = colkeytblcat.Name
											fkrelatedfield =colkeytblcat.relatedcolumn
										Else
											homefield = homefield & "," & colkeytblcat.Name
											fkrelatedfield =fkrelatedfield & "," & colkeytblcat.relatedcolumn
										End if
									Else 
										showrelated = false
									End if
								next
								if showrelated then
									objNDBrowseGrid.SQLConnect = ndnscSQLConnect
									objNDBrowseGrid.SQLUser = ndnscSQLUser
									objNDBrowseGrid.SQLSelectPK = ""
									objNDBrowseGrid.SQLPass = ndnscSQLPass
									objNDBrowseGrid.GridID = "Default" & intcountgrids
									objNDBrowseGrid.SQLSelect = "*"
									objNDBrowseGrid.SQLFrom = CStr(tblCat.Name)
									if instr(homefield,",") = 0 Then
										If isnull(objForm.ADORecordset.Fields(fkrelatedfield).Value) THen	
											if  (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
												objNDBrowseGrid.SQLWhereExtra = "[" & homefield & "] Is Null"
											Else
												objNDBrowseGrid.SQLWhereExtra = """" & homefield & """ Is Null" 
											End if
										Else
											Select Case objForm.ADORecordset.Fields(fkrelatedfield).Type
												Case 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 3 
										'adBigInt, adDecimal, adDouble, adNumeric, adSingle, _
										' adSmallInt, adTinyInt, adUnsignedBigInt, adUnsignedInt, 
										' adUnsignedSmallInt, adUnsignedTinyInt,adInteger
													if  (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
														objNDBrowseGrid.SQLWhereExtra = "[" & homefield & "] = " & objForm.ADORecordset.Fields(fkrelatedfield).Value
													Else
														objNDBrowseGrid.SQLWhereExtra = """" & homefield & """ = " & objForm.ADORecordset.Fields(fkrelatedfield).Value
													End if
												Case Else
													if  (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
														objNDBrowseGrid.SQLWhereExtra = "[" & homefield & "] ='"  & Replace(objForm.ADORecordset.Fields(fkrelatedfield).Value,"'","''") & "'"
													Else
														objNDBrowseGrid.SQLWhereExtra = """" & homefield & """ ='"  & Replace(objForm.ADORecordset.Fields(fkrelatedfield).Value,"'","''") & "'"
													End if
											End Select
										End if
									Else
										arrhomefield = split (homefield,",")
										arrfkrelatedfield = split(fkrelatedfield,",")
										objNDBrowseGrid.SQLWhereExtra = ""
										for intI = 0 to ubound (arrhomefield)
											Select Case objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Type
												Case 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 3 
										'adBigInt, adDecimal, adDouble, adNumeric, adSingle, _
										' adSmallInt, adTinyInt, adUnsignedBigInt, adUnsignedInt, 
										' adUnsignedSmallInt, adUnsignedTinyInt,adInteger
													if  (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
														objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrhomefield(intI) & "]"
														if isnull(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value) Then
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & " Is Null AND "
														Else
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "=" & objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value & " AND "
														End if 
													Else
														if isnull(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value) Then
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & """" & arrhomefield(intI) & """ Is Null AND "
														Else
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & """" & arrhomefield(intI) & """ =" & objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value & " AND "
														End if
													End if
											Case Else
												if  (objForm.ADOConnection.provider ="Microsoft.Jet.OLEDB.4.0") Then
													if isnull(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value) Then
														objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrhomefield(intI) & "] Is Null AND "
													Else
														objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & "[" & arrhomefield(intI) & "] ='"  & Replace(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value,"'","''") & "'" & " AND "
														End if
													Else
														if isnull(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value) Then
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & """" & arrhomefield(intI) & """ = Is Null AND "
														Else
															objNDBrowseGrid.SQLWhereExtra = objNDBrowseGrid.SQLWhereExtra & """" & arrhomefield(intI) & """ ='"  & Replace(objForm.ADORecordset.Fields(arrfkrelatedfield(intI)).Value,"'","''") & "'" & " AND "
														End if
													End if
											End Select
										next
										objNDBrowseGrid.SQLWhereExtra = left(objNDBrowseGrid.SQLWhereExtra,len(objNDBrowseGrid.SQLWhereExtra)-5)
									end if
									objNDBrowseGrid.SQLPageSize = ""
									objNDBrowseGrid.SQLPage = ""
									objNDBrowseGrid.AllowEdit = True
									if not ocdReadOnly Then
										objNDBrowseGrid.AllowDelete = True
									Else
										objNDBrowseGrid.AllowDelete = True
									End if
									objNDBrowseGrid.AllowAdd = True
									objNDBrowseGrid.SQLSelectID = -1
									objNDBrowseGrid.SQLSelectPK = ""
									objNDBrowseGrid.FormEdit = "FreeEdit.asp"
									objNDBrowseGrid.Open
									response.write ("<SPAN CLASS=Information>")
									response.write objNDBrowseGrid.SQLRecordCount
									response.write (" Related Records in <A HREF=""FreeBrowse.asp?sqlfrom_a=" & server.urlencode(tblcat.name) & "&amp;" )
									for each tQS in Request.Querystring
										if UCASE(tQS) <> "SQLID" AND UCASE(tQS) <> "SQLFROM" AND UCASE(tQS) <> "NDBTNDELETE" AND UCASE(tQS) <> "SQLFROM_A"  AND UCASE(tQS) <> "SQLORDERBY_A" AND UCASE(tQS) <> "SQLWHERE_A" AND UCASE(tQS) <> "SQLGROUPBY_A" AND UCASE(tQS) <> "SQLHAVING_A"  and UCASE(tQS) <> "ACTION" and UCASE(tQS) <> "SQLWHERE" Then
											Response.write (tQS  & "=" &  Server.URLEncode(Request.Querystring(tQS)) & "&amp;")
										End if
									next
									Response.write ( """>")
									Response.write (tblcat.name & "</A></span><BR>")
									objndBrowseGrid.Display ("BUTTONS") 
									objndBrowseGrid.Display ("GRID") 
									response.write ("<P>")
									Response.flush
									intcountgrids = intcountgrids + 1
									homefield = ""
									fkrelatedfield = ""
								end if
							Else 'not fkey
								homefield = ""
								fkrelatedfield = ""
							End if
						next
					next
				end if
				set objNDBrowseGrid = nothing
				set tblcat = nothing
				set keytblcat = nothing
				set cat = nothing
			End if'adox catalog not created
		end if

	end select
End if 'check if related records should be displayed
'response.write objForm.SQLID
objForm.Close()
call writefooter("")  
%>

Anon7 - 2021