/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Update sætning med fejl...
Fra : Lars Lundberg


Dato : 25-07-02 10:50

Hej
Hvad er der galt med denne sætning ?

'SQL sætning opbygges

strSQL = "Update kunder "
strSQL = strSQL & "SET ("
strSQL = strSQL & "firmanavn, "
strSQL = strSQL & "kontaktperson, "
strSQL = strSQL & "stilling, "
strSQL = strSQL & "adresse, "
strSQL = strSQL & "bynavn, "
strSQL = strSQL & "område, "
strSQL = strSQL & "postnr, "
strSQL = strSQL & "land, "
strSQL = strSQL & "telefon, "
strSQL = strSQL & "fax) "


strSQL = strSQL & "values ("
strSQL = strSQL & "'" & Session("firmanavn") & "', "
strSQL = strSQL & "'" & Session("kontaktperson") & "', "
strSQL = strSQL & "'" & Session("stilling") & "', "
strSQL = strSQL & "'" & Session("adresse")& "', "
strSQL = strSQL & "'" & Session("bynavn") & "', "
strSQL = strSQL & "'" & Session("omrade") & "', "
strSQL = strSQL & "'" & Session("postnr") & "', "
strSQL = strSQL & "'" & Session("land") & "', "
strSQL = strSQL & "'" & Session("telefon") & "', "
strSQL = strSQL & "'" & Session("fax") & "') "
strSQL = strSQL & "Where kunde-id='" & Session("kundeid") & "'"

' SQL sætning udføres
myConn.Execute(strSQL)

Den kommer med denne fejl meddelse:

Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
UPDATE-sætningen.

Med venlig hilsen
Lars




 
 
Jakob Møbjerg Nielse~ (25-07-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 25-07-02 11:03

Lars Lundberg wrote:
> Den kommer med denne fejl meddelse:
>
> Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'
>
> [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
> UPDATE-sætningen.


Har du husket at skifte alle instanser af ' ud med '' i de værdier du
indsætter?

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man



Jens Gyldenkærne Cla~ (25-07-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 25-07-02 11:08

Lars Lundberg skrev:

> Hvad er der galt med denne sætning ?

For det første - det er meget lettere at finde fejl hvis du
udskriver den færdige sql-sætning i stedet for sådan en lang liste
af strengsammensætninger. Lav en response.write strSQL umiddelbart
før du sender den afsted.


> strSQL = "Update kunder "
> strSQL = strSQL & "SET ("
> strSQL = strSQL & "firmanavn, "

[klip]

> strSQL = strSQL & "values ("
> strSQL = strSQL & "'" & Session("firmanavn") & "', "

Du har fået galt fat i updatesyntaksen. Du kan ikke skrive:

UPDATE <tabel>
SET (x, y, z)
VALUES (vx, vy, vz)
WHERE <betingelse>

Syntaksen er:

UPDATE <tabel>
SET x = vx,
   y = vy,
   z = vz,
   ...
WHERE <betingelse>


Metoden med paranteser virker kun ved en INSERT-sætning:

INSERT INTO <tabel> (x, y, z) VALUES (vx, vy, vz)


[klip]
> strSQL = strSQL & "Where kunde-id='" & Session("kundeid") & "'"

Lige for en sikkerheds skyld: Dit kunde-id er ikke et talfelt, vel?
I så fald skal der nemlig ikke plinger (') om værdien.


> ' SQL sætning udføres
> myConn.Execute(strSQL)

Før ovenstående linje kan du med fordel indsætte

Response.write strSQL

....hvis du har brug for at finde fejl.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste