Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'SubcatID ='. /Jmptcats/Lartret.asp, line 179
Browser Type: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)
Page: POST 20363 bytes to /Jmptcats/Lartret.asp
POST Data: Subcatname=Botter&addby=&denmark=%3Cdiv+align%3D%22center%22%3E%0D%0A++%3Ccenter%3E++%3Ctable+border%3D%220%22+cellpadding%3D%220%22+cellspacing%3D%220%22+style%3D%22border-collapse%3A+collapse%22+wid . . .
lav en fil du evt. kalder dbopen.asp som laver din db forbindelse og deklarerer variable som er nødvendige for dette. Eventuelt i en funktion hvis du vil.
Så inkluderer du denne i starten af dine asp filer, og en lign. dbclose.asp i bunden.
Derved undgår du en masse unødig og svært læseligt kode, i hver fil. desuden har du nu et kæmpe rette arbejde hvis du flytter databasen.
dbOpen kan for dig se således ud:
<% Dim Conn, RS
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Data/DataBank.mdb") & ";UID=admin;PWD=;" Set rs = Server.CreateObject("ADODB.RecordSet") %>
.. og dbClose.asp :
<% Set RS = Nothing Conn.Close Set Conn = Nothing %>
men det hgjælper ikke så meget når jeg trykke på ret knappen bliver alle felter fjernet, og jeg bliver ikke Redirected til default.asp - tingene bliver heller ikke opdateret i Db :-/
Ok. ! Ovennævnte var før jeg så fejlmeddelelsen. mode bliver sikert initialiseret i de linier vi ikke ser. Syntax-fejlen tyder på at variablen: Request.Querystring("SubcatID") er blank. ! - men det har du nok undersøgt.
strSQL = "Select * from subcat where SubcatID =" & Request.Querystring("SubcatID") & ""
Lartret.asp?subcatid=109 i adresse feltet står ovenstående fra starten
Når jeg så trykke Ret står der Lartret.asp?mode=update
- kan det være noget med gemme/update ikke kan finde ud af hvilke felter den skal opdatere ?? - evt hvad skal jeg lave om for det kommer til at virke ?
Ok, så burde du vel også kunne se at når du vil rette et item så sender du din ID i querystring. Denne gemmer du så i et input field for at få det videre, i en form som benytter POST metoden..
Du forsøger at hente denne ID ud via Request.QueryString, både første og anden gang.
Prøv med bare Request() istedet, det skulle løse dit problem.
Ok, my bad. Jeg læste ikke din Update kode i bunden. Det ville måske være lidt mere overskueligt, hvis du hentede den ID ind i en variable i toppen af siden.
Coltau har desuden fat i noget der, men den ekstra Update.
Jeg har prøvet din testside. Når jeg trykker submit og kikker html'en ser det ud som om den glemmer alt om udskrivning af felter, hvilket kunne tyde på at der opstår en fejl lige efter første SQL-sætning.
strSQL = "Select * from subcat where SubcatID =" & Request.Querystring("SubcatID") & "" rs.Open strSQL, Conn, 1,
Her skal Request.Querystring("SubcatID") også ændres til Request.Form("SubcatID") ellers bliver rs.EOF = true og så fejler den første gang du bruger rs("feltnavn")
Glem ovenstående - det er først nu jeg kan se hvordan siden skal virke.
I denne sætning er update med lille <form method="post" action="Lartret.asp?mode=update"> og i denne sætning er update med stort <% if mode = "Update" then
nu virker det faktisk :) Mange tak fodi du ville hjælpe coltau
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.