25. september 2001 - 00:22Der er
10 kommentarer og 1 løsning
Hvad for en operator...
Jeg får denne fejlmelding i mit script, hvor alt andet ellers virker:
Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\' [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"Udgivelses Aar = 2000\".
/skole/opg4/index.asp, linje 68
Her er min kode Den øverste stump virker fint det er den linie hvor jeg med \"where\" forsøger at udskrive titler med \"Udgivelses Aar = 2000\" der går i ged:
Set Rs = Server.CreateObject(\"ADODB.Connection\") Rs.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"boeger.mdb\") sql = \"SELECT * FROM bogtabel\" Set objRec = Rs.Execute(sql)
response.write \"<b>\" & \"udskriver fra tabel med wilcard:\" & \"</b>\" response.write \"<br>\" do while not objRec.eof response.write objrec(\"titel\") & \"<br>\" objrec.movenext loop
Response.Write \"<B> udskriver med where og order forspørgelse og logiske operatorer. I dette tilfælde = :</B><BR>\" sql = \"SELECT * FROM bogtabel where Udgivelses Aar = 2000 order by ID\" \'Den her sætning******* Set objRec = Rs.Execute(sql) do while not objRec.eof response.write objrec(\"Udgivelses Aar\") &\"<br>\" objrec.movenext loop
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
JA! Men som sagt virker resten af mit script. Det er kun når jeg vil begrænse min udskrivning til \"titler\" der er udgivet i år 2000. Altså når jeg længere oppe i scriptet bruger denne kode:
\'Her udskrives HELE indholdet i databasen til en tabel do while not RS.eof Response.Write \"<TR>\" Response.Write \"<TD>\" & RS(\"ISBN\") & \"</TD>\" Response.Write \"<TD>\" & RS(\"Titel\") & \"</TD>\" Response.Write \"<TD>\" & RS(\"Forfatter\") & \"</TD>\" Response.Write \"<TD>\" & RS(\"Udgivelses Aar\") & \"</TD>\" Response.Write \"<TD>\" & RS(\"Lokal\") & \"</TD>\" Response.Write \"</TR>\" RS.movenext loop
ok - det var også en fejl jeg forventede som resultat...
jeg er stadig ret overbevist om at der er fordi kolonnen er i to ord... når du udskriver det er det i en parentes, så derfor kan den godt se hvad den skal finde...
men prøv engang med:
sql = \"SELECT * FROM bogtabel where (Udgivelses Aar) = \'2000\' order by ID\"
Nej - Virker heller ikke. Jeg tror du har ret i det med at sql\'en ikke kan forstå når et kolonne navn er todelt.
Da jeg forsøgte(samme sted i scriptet) at udskrive lokalt forefindende titler var der intet problem jeg erstattede bare Udgivelses Aar med Lokal og 2000 med True. No problemo...
Så vi stopper legen mens den er go\' og keysersoze får pointene...
Man kan jo for h...... bare lade være med at gøre tingene så inviklede for sig selv.
f.eks kalde kolonnen for UdgivelsesAar eller Udgivelses_Aar.
Hvorfor gør jeg så ikke bare det? Fordi jeg har lavet database på skolen hvor vi bruger Access 2000 og jeg bruger Access 97 herhjemme... så jeg kan ikke åbne min database hjemme - godt træk MS!
som sagt mener jeg altså det kan lade sig gøre - prøv dette:
sql = \"SELECT * FROM bogtabel where [Udgivelses Aar] = \'2000\' order by ID\"
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.