Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:27 Der er 14 kommentarer og
1 løsning

Fejl i sql-sætning

Hej

Jeg før følgende fejl i min sql-sætning:

Fejlnummer : -2147217900
Fejlbeskrivelse: Syntax error in INSERT INTO statement.
Fejlkilde: Microsoft JET Database Engine
Indfoedt fejl: -529993134
SQL fejlkode: 3000
SQL streng: INSERT INTO users (id, email, password, forretningsnavn, navn, adresse, postnr, by, telefon, url) VALUES ('999','admin@minegenhjemmeside.dk','mit kodeord ','Min forretning', 'mit navn', 'min adresse' ,'1234','min by', '123456789', 'http://wwww')
__________________________

Set myConn=Server.CreateObject("ADODB.Connection")
        myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/users2.mdb"))

        strSQL = "INSERT INTO users (id, email, password, forretningsnavn, navn, adresse, postnr, by, telefon, url) VALUES ('999','" & strEmail & "','" & strPassword & "','" & strForretningsnavn & "', '" & strNavn & "', '" & strAdresse & "' ,'" & strPostnr & "','" & strBy & "', '" & strTelefon & "', '" & strUrl & "')"
        set rs = myConn.execute(strSQL)
__________________________

Den eneste som er af datatypen tal, er id.

Hvad er fejlen?
Avatar billede loss Nybegynder
30. januar 2003 - 21:31 #1
Hvorfor sætter du id til 999 ?...

kan du ikke bare i databasen sætte ID til Auto Increase, og så lad vøre med at tilskrive en værdi i din insert into sætning
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:31 #2
Værdien '999' er blot til at teste, om det virker. Den skal selvfølgelig tælle (men først når det virker). Der ingen igen der har denne værdi, derfor har jeg indtil videre anvendt den.
Avatar billede loss Nybegynder
30. januar 2003 - 21:32 #3
er der i databasen i forvejen en id 999 ?
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:32 #4
>kan du ikke bare i databasen sætte ID til Auto Increase
Det kan jeg ikke i mit tilfælde - argumentation unødvendig.
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:33 #5
>er der i databasen i forvejen en id 999 ?
Som sagt nej :-)
Avatar billede websmith Nybegynder
30. januar 2003 - 21:35 #6
Fejlen er meget simpel. Du kan ikke have et feltnavn som hedder by.

Du skal kalde det noget andet, fx bynavn.

Du kan forstille dig følgende:

select * from users
order by by

Den holder ikke rigtig :)
Avatar billede websmith Nybegynder
30. januar 2003 - 21:35 #7
Dette skulle egentligt have været et svar.
Avatar billede loss Nybegynder
30. januar 2003 - 21:35 #8
LOL, det overså jeg lige.. læste vist dit svar lidt for hurtigt :)
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:45 #9
Nu har jeg helt fjernet by - for at være helt sikker, men fejlen kommer stadig.

Fejlnummer : -2147217900
Fejlbeskrivelse: Syntax error in INSERT INTO statement.
Fejlkilde: Microsoft JET Database Engine
Indfoedt fejl: -529993134
SQL fejlkode: 3000
SQL streng: INSERT INTO users (id, email, password, forretningsnavn, navn, adresse, postnr, telefon, url) VALUES ('999','admin@mytsite.dk','12345','fdsfdsafdsa', 'dsafafdsafds', 'adsfds' ,'fdsaafds','43244321', 'http://wwwww')
Avatar billede websmith Nybegynder
30. januar 2003 - 21:47 #10
Det er godt nok, men eksisterer feltet stadigvæk i tabellen, og med navnet by, så kan det være derfor. Hvis der er default værdier, så kan det være at driveren selv udvider din sql sætning, ellers send beskrivelse af felterne i din tabel, dvs. type, længde osv.
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:51 #11
>Hvis der er default værdier,
Det gør den ikke. Dog eksisterer den stadigt som tabelnavn, men jeg kan tilføje - at koden (førhen den blev udbygget) så således ud, og virkede fint:

Set DB = Server.CreateObject("ADODB.Connection")
        DB.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(strDB)

        set rs=db.execute("select max(id) as newid from " & strTabel)
        varNewID = RS("newid")
        varNewID = varNewID + 1

        db.close
        set db = nothing

        Set SearchDB=Server.CreateObject("ADODB.Connection")
        SearchDB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("/db/users.mdb"))

        Set SearchRS=Server.CreateObject ("ADODB.Recordset")
        SearchRS.Open "users", SearchDB, adOpenStatic, adLockPessimistic

        ' Skriv Database
        SearchRS.AddNew
        SearchRS ("ID") =  varNewID
        SearchRS ("FORRETNINGSNAVN") =  Trim(Request.Form("FORRETNINGSNAVN"))
        SearchRS ("navn") = Trim(Request.Form ("navn"))
        SearchRS ("adresse") = Trim(Request.Form ("adresse"))
        SearchRS ("postnr") = Trim(Request.Form ("postnr"))
        SearchRS ("by") = Trim(Request.Form ("by"))
        SearchRS ("telefon") = Trim(Request.Form ("telefon"))
        SearchRS ("email") = Trim(Request.Form("email"))
        SearchRS ("password") = Trim(Request.Form("password"))
        SearchRS ("url") = Trim(Request.Form("url"))
        SearchRS.Update
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:51 #12
og der virkede by fint
Avatar billede zeusdk Nybegynder
30. januar 2003 - 21:52 #13
Jeg bliver nødt til at smutte - skrives i morgen :-)
Avatar billede Slettet bruger
31. januar 2003 - 13:02 #14
Fjern ' omkring 999 så det bliver
SQL streng: INSERT INTO users (id, email, password, forretningsnavn, navn, adresse, postnr, telefon, url) VALUES (999,'admin@mytsite.dk','12345','fdsfdsafdsa', 'dsafafdsafds', 'adsfds' ,'fdsaafds','43244321', 'http://wwwww')
Avatar billede zeusdk Nybegynder
31. januar 2003 - 13:34 #15
Jeg bliver nødt til at have et hurtigt svar. Lukker og slukker.
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