webForumDet fria alternativet

Problem med delete funktion...igen...

14 svar · 274 visningar · startad av Dwarfen

DwarfenMedlem sedan jan. 2002241 inlägg
#1

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

LarsGMedlem sedan dec. 200012 464 inlägg
#2
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?

@ndersMedlem sedan juni 200032 969 inlägg
#3

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,

DwarfenMedlem sedan jan. 2002241 inlägg
#4

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)

@ndersMedlem sedan juni 200032 969 inlägg
#5

Ska inte SQL-satsen vara med?
Vad är det då för recordset du försöker skapa med det kodstycket :q

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.

DwarfenMedlem sedan jan. 2002241 inlägg
#6

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
%>

@ndersMedlem sedan juni 200032 969 inlägg
#7

Ta bort do på raden precis ovanför rs.movenext.

DwarfenMedlem sedan jan. 2002241 inlägg
#8

om jag tar bort do blir det 'loop utan do'

@ndersMedlem sedan juni 200032 969 inlägg
#9

Flytta upp ditt end if så det ligger precis ovanför loop.

DwarfenMedlem sedan jan. 2002241 inlägg
#10

nu får jag tillbaka medelandet om att det inte angavs någon kommandotext för kommandoobjektet..

Va i hela .... betyder det?

@ndersMedlem sedan juni 200032 969 inlägg
#11

Det betyder att du försöker exekvera en SQL-fråga som är tom, dvs SQLstring har inget värde.

DwarfenMedlem sedan jan. 2002241 inlägg
#12

hur ger man SQLstringen ett värde då?

@ndersMedlem sedan juni 200032 969 inlägg
#13

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?

DwarfenMedlem sedan jan. 2002241 inlägg
#14

Tackar så mycket för hjälpen.
Har nu hittat och fixat till felet...
Tack som fan!

./me bockar och bugar åt @Anders!

@ndersMedlem sedan juni 200032 969 inlägg
#15

Varsågod. :)

Mvh,

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)