FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Sitter och bygger en "webb-butik", något som går mindre bra.
Jag kan inte mycket asp alls men måste få klart allt. (skolarbete) Vad är fel: Dim PID PID = Request("txtPID") objConn.Execute "DELETE FROM Prod WHERE PID = PID" Bara utklipp nu alltså, men som ni ser så är det en variabel vid namn PID som ska ta bort en med det nummer som kommer från txtPID. Problemet är att den verkar ta bort alla poster som har ett PID. |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
testa med:
objConn.Execute "DELETE FROM Prod WHERE PID = '" & PID & "'" innan uppfattade databasen det som att om PID=PID så ska raden bort (om PID på den raden är 3 så kollar den om 3 = 3 och tar bort raden). Med det här fattar databasen att det första PID är kolumnnamnet i databasen och den andra PID är en variabel. |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Hmm han vill inte ändå.
Han får värdet från sidan innan med den här koden: <input type="text" name="txtPID" maxlength="50" size="40"> |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Postar hela koden istället.
Fil1 <form name="form1" method="post" action="ta_bort_admin2.asp"> <input type="text" name="txtPID" maxlength="50" size="40"> <input type="submit"> </form> Fil2 <% @LANGUAGE=VBScript %> <% Option Explicit %> <!-- #include file="adovbs.inc" --> <% Dim PID PID = Request("txtPID") 'Öppnar en koppling mot databasen Dim objConn Set objConn = Server.CreateObject("ADODB.Connection") objConn.ConnectionString = "DSN=lembit" objConn.Open 'Ta bort Dim objRS Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open "Prod", objConn,adOpenDynamic,adLockOptimistic objConn.Execute "DELETE FROM Prod WHERE PID = '" & PID & "'" 'Städa upp objRS.Close set objRS = Nothing objConn.Close set objConn = Nothing Response.Redirect("lagg_till_admin_klar.html") %> |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Tar den bort alla där PID har något värde eller tar den inte bort något alls nu?
Där det står: objConn.Execute "DELETE FROM Prod WHERE PID = '" & PID & "'" kan du testa att lägga till raden: response.write "DELETE FROM Prod WHERE PID = '" & PID & "'" (och ta bort response.redirect i slutet så länge) Då ser du vad den försöker köra hos databasen. Om det ser rätt ut kan du testa att köra den raden i tex phpMyAdmin om du har det och se vad den säger där. |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Haha nu lägger jag fan ner allt!
En databas.ldb skapas och inget verkar fungera längre. Feltyp: Microsoft VBScript runtime (0x800A01FB) An exception occurred: 'Open' Fy fan för asp säger jag bara |
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Mycket flitig postare
|
Från fel-sidan:
POST Data: txtPID=87 Som ni ser i koden så är PID kopplad till txtPID så jag förstår inte varför han inte bara tar bort skiten. Har kollat på diverse sidor nu och min "delete-kod" är ju korrekt. |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Administratör
|
Jag är inte haj på asp eller programmering alls men i Perl skulle mjukvaran inte kunna se skillnad på
PID = Request("txtPID") objConn.Execute "DELETE FROM Prod WHERE PID = PID" I båda fallen skulle den sätta variabeln. Kanske objConn.Execute "DELETE FROM Prod WHERE PID == PID" Skulle funka med == eller asp's grej att skilja på = & ==. eller förresten ... PID = PID borde ju inte gå ... FormPID = PID. WN
__________________
Snickare - Copenhagen - Stockholm - Shoppasmart - Bilverkstad - flig.ht/s - Stockholm - Nöje - Direct Flights - PopularHotels.com - TOBUY Sverige - Pengar.se. |
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Mycket flitig postare
|
"Data type mismatch in criteria expression."
Vet inte vad det betyder riktigt men kan det inte ha något med att i forumläret står det typ text och i databasen är det en räknare? |
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Medlem
|
objConn.Execute "DELETE FROM Prod WHERE PID = " & CInt(PID)
|
||
![]() |
![]() |
Svara |
|
|