Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:03 Der er 20 kommentarer

Insert into problemer

Hej,

jeg har et problem jeg ikke kan se hvori fejlen ligger. En ganske almindelig insert sql-sætning i vbscript. Det er en access db. Alle db-attributter er af typen tekst.

strsql = "Insert Into kontakt " & _
                "(orgnavn, email, enavn, fnavn, pnr, by, nbtilmeldt, status) Values " & _
                "('" & strorgnavn & "', '" & stremail & "', '" & strenavn & "', " & _
                "'" & strfnavn & "', '" & strpnr & "', '" & strby & "', '" & strnbtilmeldt & "', " & _
                "'" & strstatus & "')"

Nedenstående er en response.write(strsql):
Insert Into kontakt (orgnavn, email, enavn, fnavn, pnr, by, nbtilmeldt, status) Values ('Kunstnyt', 'kunst@oticon.dk', 'Melvang', 'Hans', '9000', 'Aalborg', 'Ja', 'kunstforening')


Function gemkontakt(porgnavn, pemail, penavn, pfnavn, ppnr, pby, pnbtilmeldt, pstatus)
        Dim strsql, strorgnavn, stremail, strenavn, strfnavn, strpnr, strby, strnbtilmeldt
        Dim strstatus
        Dim objdb
        strorgnavn = porgnavn
        stremail = pemail
        strenavn = penavn
        strfnavn = pfnavn
        strpnr = ppnr
        strby = pby
        strnbtilmeldt = pnbtilmeldt
        strstatus = pstatus
        strsql = "Insert Into kontakt " & _
                "(orgnavn, email, enavn, fnavn, pnr, by, nbtilmeldt, status) Values " & _
                "('" & strorgnavn & "', '" & stremail & "', '" & strenavn & "', " & _
                "'" & strfnavn & "', '" & strpnr & "', '" & strby & "', '" & strnbtilmeldt & "', " & _
                "'" & strstatus & "')"
        Response.Write(strsql)
        Set objdb = new clsdb
        objdb.opendb(strsql)
        objdb.closedb()
        Set objdb = Nothing
    End Function

Jeg har inkluderet min fil der refereres til i "new clsdb", og der opnås fint connection til databasen.

På forhånd tak.

Lars
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:10 #1
Fejlmeddelelsen:

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i INSERT INTO-sætningen.
Avatar billede cdc Novice
26. juni 2004 - 12:12 #2
er det ikke et eller andet med at man ikke kan bruge ping ( ' ) hvor tabellen er tal ?
Avatar billede tubber Juniormester
26. juni 2004 - 12:15 #3
Han skriver tallet også er af atributten tekst.....

men måske det er windowsrettigheder:
se spg: http://www.eksperten.dk/spm/513753
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:19 #4
Det troede jeg også, men der er write på IUSR_LARS
Avatar billede cpufan Juniormester
26. juni 2004 - 12:22 #5
by er et reservet ord, du skal kalde din kolonne noget andet f.eks. city
Avatar billede cpufan Juniormester
26. juni 2004 - 12:23 #6
eller også [by]
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:23 #7
Okay, tester lige :-)
Avatar billede cpufan Juniormester
26. juni 2004 - 12:25 #8
strsql = "Insert Into kontakt " & _
                "(orgnavn, email, enavn, fnavn, pnr, [by], nbtilmeldt, status) Values " & _
                "('" & strorgnavn & "', '" & stremail & "', '" & strenavn & "', " & _
                "'" & strfnavn & "', '" & strpnr & "', '" & strby & "', '" & strnbtilmeldt & "', " & _
                "'" & strstatus & "')"
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:26 #9
tester lige igen...
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:28 #10
Stjerneagtigt :-) - det var rigtigt lækkert, tak skal du ha'...jeg kunne blive ved...
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:29 #11
Ja, ja jeg accepterer selvfølgelig :-)
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:29 #12
du skal lige give et svar....
Avatar billede cpufan Juniormester
26. juni 2004 - 12:36 #13
u r welcome
Avatar billede tubber Juniormester
26. juni 2004 - 12:37 #14
doh ja den havde jeg sq overset, sad og tællede ' og " og sådan noget......
Men ok det er heller ikke det problem jeg rammer pga. min egen lille navngivnings regl.....

du bruger jo selv strNavn det bruger jeg på alt næsten, så undgår man mange fejl og det er nemt for en anden at se hvad man har med at gøre......

tblNavn = Table i db
rsNavn = feltnavn i db
varNavn = variable (udimmet)
dbNavn = databasenavn

På den måde er det nemt at se hvad man har med at gøre, samt man undgår reserverede navne :)
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:39 #15
Jeg vidste simpelthen ikke by var et reserveret ord. Meen det kunne man måske have resoneret sig frem til :-)
Avatar billede lkekspert Nybegynder
26. juni 2004 - 12:40 #16
Har du fået pointene?
Avatar billede tubber Juniormester
26. juni 2004 - 12:52 #17
Du skal markere han nick i boksen for neden og trykke accepter.....

Nej tror jeg ikke man burde, jeg vidste det kun fordi jeg stødte på det for lang tid siden i noget VB.......og siden da navngav jeg på den måde som skrevet :) og det var kun lige et lille udsnit jeg kom med, men du har ideen :)
Avatar billede tubber Juniormester
26. juni 2004 - 13:01 #18
Lige noget her fra et andet spg jeg rendte over :)

Listen over reserverede ord i Access

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q209/1/87.ASP&NoWebContent=1
Avatar billede cpufan Juniormester
01. juli 2004 - 20:49 #19
lukker du?
Avatar billede lkekspert Nybegynder
02. juli 2004 - 09:54 #20
Igen, igen - har du fået pointene cpufan?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester