/ 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
Syntax error in UPDATE statement
Fra : Thomas


Dato : 01-05-08 21:16

Hejsa, Jeg ved godt det bliver et langt indlæg det her, men jeg
kan ikke selv finde den fejl.

Fejlen hedder.
Microsoft JET Database Engine error '80040e14'
Syntax error in UPDATE statement.

Den skulle komme ved at bruge reserved keywords, men synes ikke
jeg bruger nogen.

Her kommer koderne:

strSQL = " Update stskontakt set ("
   strSQL = strSQL & "ststitle,"
   strSQL = strSQL & "stsnavn,"
   strSQL = strSQL & "stsmelnavn,"
   strSQL = strSQL & "stseftnavn,"
   strSQL = strSQL & "stscon,"
   strSQL = strSQL & "stsfon,"
   strSQL = strSQL & "stsmobil,"
   strSQL = strSQL & "stsemail,"
   strSQL = strSQL & "stsdomaene,"
   strSQL = strSQL & "stsVtitle,"
   strSQL = strSQL & "stsVfon,"
   strSQL = strSQL & "stsVmobil,"
   strSQL = strSQL & "stsVemail,"
   strSQL = strSQL & "stsaktiv)"
   
   strSQL = strSQL & " values ("
   strSQL = strSQL & "'" & ststitle & "'" & ","
   strSQL = strSQL & "'" & stsnavn & "'" & ","
   strSQL = strSQL & "'" & stsmelnavn & "'" & ","
   strSQL = strSQL & "'" & stseftnavn & "'" & ","
   strSQL = strSQL & "'" & stscon & "'" & ","
   strSQL = strSQL & stsfon & ","
   strSQL = strSQL & stsmobil & ","
   strSQL = strSQL & "'" & stsemail & "'" & ","
   strSQL = strSQL & "'" & stsdomaene & "'" & ","
   strSQL = strSQL & "'" & stsVtitle & "'" & ","
   strSQL = strSQL & "'" & stsVfon & "'" & ","
   strSQL = strSQL & "'" & stsVmobil & "'" & ","
   strSQL = strSQL & "'" & stsVemail & "'" & ","
   strSQL = strSQL & "'" & stsaktiv & "'" & ")"
   strSQL = strSQL & " where stsid = " & Request.Querystring("id")

Her er hvad strSQL bliver til:

SQL: Update stskontakt set
(ststitle,stsnavn,stsmelnavn,stseftnavn,stscon,stsfon,stsmobil,st
semail,stsdomaene,stsVtitle,stsVfon,stsVmobil,stsVemail,stsaktiv)
values
('Boss','Mig','Igen','Da','+45',75854126,22500086,'mig','her.dk',
'Vis','Vis','Vis','Vis','Deaktiveret') where stsid = 2

Også kommer fejlen

De er alle tekst undtagen de 2 telefon nr.

En der har en ide til hvad jeg laver galt?




--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Johansen (02-05-2008)
Kommentar
Fra : Stig Johansen


Dato : 02-05-08 06:26

Thomas wrote:

> Hejsa, Jeg ved godt det bliver et langt indlæg det her, men jeg
> kan ikke selv finde den fejl.
[snip SQL]
> En der har en ide til hvad jeg laver galt?

Du bruger insert syntax i et update statement.
Det hedder
INSERT INTO table (feltliste) VALUES(værdiliste)

Hvorimod update laves på denne måde:
UPDATE stskontakt set
ststitle='Boss',
stsnavn='Mig',
..... osv
where stsid = 2

Så du skal bare flytte lidt rundt på din kode.

Hvis du er lidt øm over performance, og tænker på, at ASP reallokerer memory
ved hver eneste ændring bør du isedte for:
        strSQL = strSQL & "ststitle,"
        strSQL = strSQL & "stsnavn,"
bruge line continuation så
        strSQL = "ststitle," _
         & "stsnavn," _
osv.
På den måde allokerer du kun strSQL en gang i stedet for at allokere og
reallokere.

Hvis du ikke har gjort det andetsteds, så husk at replace ' med '' (=2 ') i
dit SQL.
Så undgår du formentlig de fleste SQL Injection forsøg.

--
Med venlig hilsen
Stig Johansen

Thomas (02-05-2008)
Kommentar
Fra : Thomas


Dato : 02-05-08 19:46

1000 tak

Jeg var ellers sikker på jeg kunne skrive det sådan:-/ men jeg blev kloger

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177449
Tips : 31962
Nyheder : 719565
Indlæg : 6408122
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste