Vad innehåller startID?
(markera gärna raden felmeddelandet pekar på i koden, så det är lättare för oss att hitta)
8 svar · 343 visningar · startad av jake
hej,
Snart verkar allt funka som det ska, men får ett felmeddelande när jag lägger en ett sökformulär på en sida
så hoppas det finns någon som inte har tröttnat på frågor...
Får felmeddelande
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
ODBC driver does not support the requested properties.
som pekar på rad 31
oRecSet.Open SQLStmt, strConn, 3, 1
edit: markerade raden
i följande kod.
Det är när jag lägger till sökformuläret längst ner i koden som det blir fel. Utan det fungerar det...
<!--#include file="../settings.inc.asp"-->
<table width="570" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80" align="left">Inlagd</td>
<td width="60" align="left">Arrangör</td>
<td width="230" align="left">Uppgift</td>
<td width="120" align="left">Vinst</td>
<td width="80" align="left">Slutdatum</td>
</tr>
<%
Const NumOfSites = 10
Function ListSites(SQLStmt, NumOfSites, startID)
Dim olddate
Dim writtentable
Set oRecSet = Server.CreateObject("ADODB.Recordset")
SQLStmt2 = "SELECT COUNT(*) as Antal FROM vinsttips"
oRecSet.Open SQLStmt2, strConn, 3, 3
intAntal = oRecSet("Antal")
oRecSet.Close
Alla = intAntal / NumOfSites
Alla = int(Alla) -- 1
Sida = startID / NumOfSites
Sida = int(Sida) -- 1
Set oRecSet = Server.CreateObject("ADODB.Recordset")
'fel > oRecSet.Open SQLStmt, strConn, 3, 1
If oRecSet.EOF = False Then
Do While oRecSet.EOF = False
If olddate <> oRecSet("datum") Then
writtenTable = 0
%>
<%End If '' olddate <> oRecSet("datum") %>
<tr>
<td width="80" align="left"><%=oRecSet("datum")%></td>
<td onClick=window.open("<%=oRecSet("url")%>"); width="60" align="left" onmouseover="this.className='linktab'; window.status='<%=oRecSet("url")%>';return true;" onmouseout="this.className='linktabell'; window.status='' "><%=oRecSet("arrangor")%></td>
<td onClick=window.open("<%=oRecSet("direkturl")%>"); width="230" align="left" onmouseover="this.className='linktab'; window.status='<%=oRecSet("direkturl")%>';return true;" onmouseout="this.className='linktabell'; window.status='' "><%=oRecSet("uppgift")%></td>
<td width="120" align="left"><%=oRecSet("vinst")%></td>
<td width="80" align="left"><%=oRecSet("slutdatum")%></td>
<%
olddate = oRecSet("datum")
oRecSet.MoveNext
If oRecSet.EOF = 0 Then
If olddate <> oRecSet("datum") Then
Response.write "</Table>" & vbcrlf
writtenTable = 1
End If
End If
Loop
If (writtenTable = 0 AND oRecSet.EOF = True) Then
Response.write "</TABLE>" & vbcrlf
End If
If oRecSet.EOF = False Then
newdate = oRecSet("datum")
Else
newdate = "nothing"
End If
Response.Write "<br>Sida <b>" & Sida & "</b> av <b> " & Alla & "</b><br>"
Response.write "<b><a class='pilar' title='Förra sidan' href='" & Request.ServerVariables("SCRIPT_NAME") & "?prev=" & startID - NumOfSites & "'><< </a>"
Response.write "---"
Response.write "<a class='pilar' title='Nästa sida' href='" & Request.ServerVariables("SCRIPT_NAME") & "?next=" & startID + NumOfSites & "'> >> </a></b>"
Else ''(If oRecSet.EOF = False)
Response.write "Slut<br><br>"
Response.write "<b><a title='Förra sidan' href='" & Request.ServerVariables("SCRIPT_NAME") & "?prev=" & startID - NumOfSites & "'><< </a>"
Response.write "---"
Response.write "<a title='Från början' href='" & Request.ServerVariables("SCRIPT_NAME") & "'> >></a></b>"
End If ''(If oRecSet.EOF = False)
oRecSet.Close
Set oRecSet = Nothing
End Function ''ListSites()
%>
<script language="javascript">
function Validate()
{
if (document.addsite.url.value =="http://")
{
alert("Du glömde länken");
document.addsite.url.focus();
return false;
};
if (document.addsite.kommentar.value =="Kommentar")
{
alert("Du har inte skrivit någon kommentar");
document.addsite.kommentar.focus();
return false;
};
if (document.addsite.namn.value =="Ditt namn")
{
alert("Du glömde ditt namn");
document.addsite.namn.focus();
return false;
};
};
</script>
<%
Dim startID
startID = 0
If Request.QueryString("next") <> "" Then
startID = Request.QueryString("next")
End If
If Request.QueryString("prev") <> "" Then
startID = Request.QueryString("prev")
End If
If startID < 0 Then
startID = 0
End If
strPattern = Request.Querystring("search")
strPattern = Replace(strPattern, "'", "''", 1, -1, 1)
strPattern = Replace(strPattern, "´", "", 1, -1, 1)
strPattern = Replace(strPattern, "`", "", 1, -1, 1)
If Request.Querystring("search") = "" Then
SQLStmt = "select * from vinsttips order by id desc LIMIT " & startID & "," & NumOfSites
ListSites SQLStmt, NumOfSites, startID
Else
Response.Write "<center><b>Listar max 10 sökresultat på " & strPattern & "</b><br><br>" &vbcrlf
SQLStmt = "select * from vinsttips WHERE rubrik LIKE '%" & strPattern & "%' order by id desc LIMIT 0,10"
ListSites SQLStmt, NumOfSites, startID
End If
%>
<form action="vinsttips.asp" method="GET" name="Formen">
<input type="text" name="search" size="20" maxlength="30"> <input type="image" src="images/sok.gif" title="Sök efter en site" align="absmiddle" border="0">
</form>
</tr>
</table>
Vad innehåller startID?
(markera gärna raden felmeddelandet pekar på i koden, så det är lättare för oss att hitta)
Skriv ut SQLStmt så du ser vad den innehåller (response.write).
Vad betyder 3,1 i slutet? Ser att du har skrivit 3,3 på ett annat ställe.
startID definieras i sista asp kodstycket efter javascriptet...
vet inte exakt skillnaden på 3,1 och 3,3 då jag har fått en kod som jag redigerar i men blir samma fel även om det står 3,3...
hm... då jag skriver ut:
Response.write SQLStmt
så skrivs ändå inte ut något mer på sidan...
Tja, då är det ju inte så konstigt längre. För SQLStmt borde väl innehålla något?
jake skrev:
startID definieras i sista asp kodstycket efter javascriptet...
Ja, men vad innehåller variabeln?
vet inte exakt skillnaden på 3,1 och 3,3 då jag har fått en kod som jag redigerar i men blir samma fel även om det står 3,3...
http://www.devguru.com/technologies/ado/quickref/recordset_open.html
hm... då jag skriver ut:
Response.write SQLStmtså skrivs ändå inte ut något mer på sidan...
Var lägger du den kodraden då?
@nders skrev:
jake skrev:
Response.write SQLStmtså skrivs ändå inte ut något mer på sidan...
Var lägger du den kodraden då?
oj, jag lade den nog på fel ställe. När jag lägger den i en egen container skriver den ut:
select * from vinsttips order by id desc LIMIT 0,10
hej igen,
när jag läste igenom koden en gång till såg jag att det var fel kolumnnamnet som skulle söka i databasen...
from vinsttips WHERE rubrik LIKE osv...
så det fungerar bättre. En kompletterande fråga är hur skulle jag skriva om jag ville söka flera kolumner ur databasen?
det fungerade inte med
from vinsttips WHERE rubrik OR kommentar LIKE osv..
där rubrik och kommentar är två kolumner i tabellen vinsttips.
WHERE rubrik LIKE 'vad-du-vill' OR kommentar LIKE 'vad-du-vill'