' ASP fra Database
HejJeg fik en god hjælp tidligere i dag, da jeg havde et problem med at der ikke kunne skrives ' i teksten på det der skulle lægges i DB. Det virker nu fint. Nu har jeg bare problemet når jeg skal søge data frem igen, hvis der er indtastet en '.
Kan nogen hjælpe ?
Her er koden:
<%@ language="JScript" %>
<!--#INCLUDE FILE = "global.asp" -->
<!--$Id: soegning.asp,v 1.3 1999/06/09 14:17:31 mily Exp $-->
<html>
<head>
<title>Søgning </title>
</head>
<body topmargin="0" leftmargin="0">
<%
var soeg_test1 = new String(Request.Querystring("test1"))
var soeg_test2 = new String(Request.Querystring("test2"))
var soeg_test3 = new String(Request.Querystring("test3"))
var soeg_ID = new String(Request.Querystring("ID"))
%>
<p><%
var tick = /'/
var tick2 = "''"
soeg_test1 = soeg_test1.replace(tick, tick2)
var clauses = new Array()
var count = 0
if (soeg_test1 != "") {
var test = ""
soeg_test1 = Trim(soeg_test1)
sep = soeg_test1.indexOf(" ")
while (sep >= 0) {
if (test != "") { test += " AND " }
test += "[test1] like '%" + Trim (soeg_test1.substr (0,sep)) + "%')"
soeg_test1 = LTrim(soeg_test1.substr(sep))
sep = soeg_test1.indexOf(" ")
}
if (test != "") { test += " AND " }
test += "[test1] like '%" + soeg_test1 + "%'"
clauses[clauses.length] = "("+test+")"
}
if (soeg_test2 != "") {
test = ""
soeg_test2 = Trim(soeg_test2)
sep = soeg_test2.indexOf(" ")
while (sep >= 0) {
if (test != "") { test += " AND " }
test += "[test2] like '%" + Trim(soeg_test2.substr(0, sep)) + "%'"
soeg_test2 = LTrim(soeg_test2.substr(sep))
sep = soeg_test2.indexOf(" ")
}
if (test != "") { test += " AND " }
test += "[test2] like '%" + soeg_test2 + "%'"
clauses[clauses.length] = "(" + test + ")"
}
if (soeg_test3 != "") {
test = ""
soeg_test3 = Trim(soeg_test3)
sep = soeg_test3.indexOf(" ")
while (sep >= 0) {
if (test != "") { test += " AND " }
test += "[test3] like '%" + Trim(soeg_test3.substr(0, sep)) + "%'"
soeg_test3 = LTrim(soeg_test3.substr(sep))
sep = soeg_test3.indexOf(" ")
}
if (test != "") { test += " AND " }
test += "[test3] like '%" + soeg_test3 + "%'"
clauses[clauses.length] = "(" + test + ")"
}
if (soeg_ID != "") {
test = ""
soeg_ID = Trim(soeg_ID)
sep = soeg_ID.indexOf(" ")
while (sep >= 0) {
if (test != "") { test += " AND " }
test += "[ID] like '%" + Trim(soeg_ID.substr(0, sep)) + "%'"
soeg_ID = LTrim(soeg_ID.substr(sep))
sep = soeg_ID.indexOf(" ")
}
if (test != "") { test += " AND " }
test += "[ID] like '%" + soeg_ID + "%'"
clauses[clauses.length] = "(" + test + ")"
}
where_clause = ""
for (i=0; i<clauses.length; i++) {
where_clause += (i>0 ? " AND " : "") + clauses[i]
}
// Udfør søgning
sql = "select test1, [test2], test3, [ID] from test"
if (clauses.length > 0) {
sql += " where " + where_clause
}
sql += " ORDER BY CDate(test1) desc"
// Response.Write("<tt>" + sql + "</tt>")
var res = DB.Execute(sql)
%> <% if (res.eof) { %> </p>
<p><% } else { %> </p>
<% while (! res.EOF ) { %>
<tr>
<td class="dbcell" width="63" height="25"
style="background-color: rgb(255,255,255); color: rgb(0,0,0)" align="center" valign="top"><p
align="left"><small><%=res("test1")%></small> </td>
<td class="dbcell" width="128" height="25"
style="background-color: rgb(255,255,255); color: rgb(0,0,0)" align="left" valign="top"><p
align="left"><small><%=res("test2") %></small></td>
<td valign="top" width="40"><small><%=res("test3")%></small> </td>
<td class="dbcell" width="337" height="25"
style="background-color: rgb(255,255,255); color: rgb(0,0,0)" align="center" valign="top"><small><%=res("ID")%></small>
</td>
<% res.MoveNext()
}
%>
<p><% }
res.Close() %> </p>
