Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
set RS = DBConnection.Execute(SQLstring)
Det objekt du skapar heter connect men du använder DBConnection.
Vad är SQLString och hur får den något värde?
14 svar · 276 visningar · startad av Dwarfen
Har suttit och försökt att göra om delete funktionen som jag fick hjälp med här innan...
Hade tänkt att man skulle kunna söka i databasen, och få de olika posterna listade med sina ID nr, och sedan med hjälp av en länk kunna ta bort valfri...men det går inte....
Har fått massa med felmedelande, men nu får jag bara ett....
Har tre styck sidor.
En som skickar sök ordet, en sida som ska lista upp länken med delete funktionen och en som ska ta bort posten.
Alternativ.asp:
Väjl vilken post du vill ta bort och ur vilken tabell.
<form method="post" action="../delete/delete.asp" size="0">
<input type="text" name="Sok">
<BR>
<input type="Radio" name="band" value="filmer" checked size="10">Filmer</input>
<BR>
<input type="Radio" name="band" value="punk" size="10">Punk</input>
<BR>
<input type="Radio" name="band" value="metal" size="10">Metal</input>
<BR>
<input type="Radio" name="band" value="blandat" size="10">Blandat</input>
<BR>
<input type="submit" value="Sök">
<BR>
</FORM>
Delete.asp:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
set RS = DBConnection.Execute(SQLstring)
if Request.Form("band") = "filmer" Then
Response.Write "<a href=../filmer.asp?ID="& rs("ID") & ">"& rs("TITEL") & "</a> <a href=../delete/deleting.asp?action=DELETE&ID="& rs("ID") &"> Ta bort</a><BR>"
elseif Request.Form("band") = "punk" Then
SQL = "SELECT * From PUNK WHERE KEY_WORD LIKE '%" & Request.Form("Sok") & "%'"
elseif Request.Form("band") = "metal" Then
SQL = "SELECT * From METAL WHERE KEY_WORD LIKE '%" & Request.Form("Sok") & "%'"
elseif Request.Form("band") = "blandat" Then
SQL = "SELECT * From Blandat WHERE KEY_WORD LIKE '%" & Request.Form("Sok") & "%'"
end if
set rs = Connect.Execute(SQL)
if not rs.eof then
do until rs.eof
if Request.Form("band") = "filmer" Then
Response.Write "<a href=../allt.asp?ID="& rs("ID") & ">" & rs("TITEL") & "</a><BR>"
else
Response.Write "<a href=../allt.asp?ID="& rs("ID") & ">" & rs("BAND") & "</a><BR>"
end if
rs.movenext
loop
rs.close
Connect.close
else
end if
%>
Deleting.asp:
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
Set rs = Connection.Execute("SELECT * From Filmer WHERE ID =" & Request.QueryString("ID"))
%>
<%
Do Until rs.EOF
Response.Write ("</FONT><B>Titel:</B><FONT COLOR=LIGHTBLACK>" & rs("TITEL") & "</FONT><B><BR>Medverkande:</B><FONT COLOR=LIGHTBLACK> " & rs("Medverkande") & "</FONT><B><BR>Utgivnings år:</B><FONT COLOR=LIGHTBLACK> " & rs("utgivnings_år") & "</FONT><BR><B>Betyg:</B> <FONT COLOR=LIGHTBLACK>" & rs("betyg"))
rs.MoveNext
loop
rs.Close
Set rs = Nothing
Connection.Close
Set Connection = Nothing
%>
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
If Request.QueryString("action") = "DELETE" Then
SQL = "DELETE FROM FILMER Where ID=" & Request.QueryString("ID")
connection.execute SQL,,128
Connection.close
End If
%>
och får följande fel:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: ''
/delete/delete.asp, line 8
Man blir ju grå i skallen av dessa problem...
/Dwarfen
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
set RS = DBConnection.Execute(SQLstring)
Det objekt du skapar heter connect men du använder DBConnection.
Vad är SQLString och hur får den något värde?
När du skapar ditt connectionobjekt kallar du det för Connect, men du försöker använda ett som heter DBConnection.
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
set RS = [b]Connect[/b].Execute(SQLstring)
Mvh,
Sql satsen ska inte vara med, glömde ta bort den innan jag klistrade in i wf.
Får fortfarande fel i koden:
Det angavs inte någon kommandotext för kommandoobjektet.
/delete/delete.asp, line 8
Felet ligger i:
set RS = Connect.execute(SQLstring)
Ska inte SQL-satsen vara med?
Vad är det då för recordset du försöker skapa med det kodstycket
Red: tittade lite på din kod. Den exekveringsraden ska inte vara med överhuvudtaget, så det är bara att kasta bort den. Du skapar ju ditt recordset längre ner i koden.
har nu fått bort felmedlandet...men får inte upp någon sida överhuvudtaget...strange...
men nu har jag problem med loopen...den vill ha untill eller while..
'While', 'Until' eller satsslut förväntas.
/delete/delete.asp, line 22, column 3
kod:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\alternativ\databaser\allt.mdb"
set RS = Connect.Execute(SQLstring)
do until rs.eof
if Request.Form("band") = "filmer" Then
Response.Write "<a href=../filmer.asp?ID="& rs("ID") & ">"& rs("TITEL") & "</a> <a href=../delete/deleting.asp?action=DELETE&ID="& rs("ID") &"> Ta bort</a><BR>"
elseif Request.Form("band") = "punk" Then
Response.Write "<a href=../filmer.asp?ID="& rs("ID") & ">"& rs("TITEL") & "</a> <a href=../delete/deleting.asp?action=DELETE&ID="& rs("ID") &"> Ta bort</a><BR>"
elseif Request.Form("band") = "metal" Then
Response.Write "<a href=../filmer.asp?ID="& rs("ID") & ">"& rs("TITEL") & "</a> <a href=../delete/deleting.asp?action=DELETE&ID="& rs("ID") &"> Ta bort</a><BR>"
elseif Request.Form("band") = "blandat" Then
Response.Write "<a href=../filmer.asp?ID="& rs("ID") & ">"& rs("TITEL") & "</a> <a href=../delete/deleting.asp?action=DELETE&ID="& rs("ID") &"> Ta bort</a><BR>"
do loop
rs.movenext
rs.close
Connect.close
end if
%>
Ta bort do på raden precis ovanför rs.movenext.
om jag tar bort do blir det 'loop utan do'
Flytta upp ditt end if så det ligger precis ovanför loop.
nu får jag tillbaka medelandet om att det inte angavs någon kommandotext för kommandoobjektet..
Va i hela .... betyder det?
Det betyder att du försöker exekvera en SQL-fråga som är tom, dvs SQLstring har inget värde.
hur ger man SQLstringen ett värde då?
Uhm...
SQLString = "SELECT bla bla bla"
Det är du som i Execute-raden specificerar vilken SQL-fråga som skall köras. Säger du till att SQL-frågan finns i en variabel som heter SQLString så måste du ha skapat den. I tidigare kod har du skapat en variabel som heter SQL som innehåller SQL-frågan, är det den du ska använda istället?
Tackar så mycket för hjälpen.
Har nu hittat och fixat till felet...
Tack som fan!
./me bockar och bugar åt @Anders!