Avatar billede fnuggi Nybegynder
28. maj 2002 - 11:10 Der er 26 kommentarer og
2 løsninger

Problemer med SQL, efter ændring af DB connection,haster

Hej Alle

Jeg har ændret min connection til Access databse til at benytte jet.OLEDB istedet for ODBC. Nu virker min SQL sætning ikke. Kan i se hvad der er galt. Fejlmelding lyder på "wrong syntaks in Insert statement" line 51. Det er strengen hvor den først SQL bliver afviklet

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:\test help_desk\fpdb\help_desk.mdb;" & _
      "Jet OLEDB:System Database=c:\help_desk\fpdb\Sikret.mdw;", _
      "mip","tulle5"

strTekst = Request.Form( "Problemstilling" )
strTekst = Replace( strTekst, "'", "''" )

Ini =  Request.Form( "Initialer" )

Conn.Execute(strSQL)

strSQL = "Insertrows into Resultater ("

strSQL = strSQL & "Initialer, "
strSQL = strSQL & "Placering, "
strSQL = strSQL & "Type, "
strSQL = strSQL & "Problem, "
strSQL = strSQL & "software, "
strSQL = strSQL & "Problemstilling, "
strSQL = strSQL & "Priotet, "
strSQL = strSQL & "Session, "
strSQL = strSQL & "Status, "
strSQL = strSQL & "Status_bom, "
strSQL = strSQL & "Tidsstempel ) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("Initialer") & "' , "
strSQL = strSQL & "'" & Request.Form("Placering") & "' , "
strSQL = strSQL & "'" & Request.Form("Type") & "' , "
strSQL = strSQL & "'" & Request.Form("Problem") & "' , "
strSQL = strSQL & "'" & Request.Form("software") & "' , "
strSQL = strSQL & "'" & strTekst & "', "
strSQL = strSQL & "'" & Request.Form("Priotet") & "' , "
strSQL = strSQL & "'" & Session.SessionID & "' , "
strSQL = strSQL & "'" & Request.Form("Status") & "' , "
strSQL = strSQL & "'" & Request.Form("Status_bom") & "' , "
strSQL = strSQL & "'" & Request.Form("Tidsstempel") & "')"

'SQL sætning eksekveres
Conn.Execute(strSQL)
Avatar billede -mundi- Nybegynder
28. maj 2002 - 11:12 #1
Skriv din sql streng ud, så man kan se hvilke data der er i den
Avatar billede teamdev Novice
28. maj 2002 - 11:15 #2
Du eksekverer din sql 2 gange!!
Avatar billede teamdev Novice
28. maj 2002 - 11:17 #3
set conn=Server.CreateObject("ADODB.Connection")
    conn.Provider="Microsoft.Jet.OLEDB.4.0"
    conn.Open(Server.Mappath("fpdb/help_desk.mdb"))
Avatar billede fnuggi Nybegynder
28. maj 2002 - 11:17 #4
Til mundi

du mener respnse.write alle variablerne ??? inden SQL sætningen bliver afviklet

/Michael
Avatar billede -mundi- Nybegynder
28. maj 2002 - 11:18 #5
strSQL = strSQL & "'" & Request.Form("Tidsstempel") & "')"

response.write strSQL
response.end
'SQL sætning eksekveres
Conn.Execute(strSQL)
Avatar billede fnuggi Nybegynder
28. maj 2002 - 11:23 #6
Ok det går pænt stærkt det her :-) dejligt.

Til Teamdev... Jeps jeg eksekverede min SQL 2 gange, det vart pga. af jeg havde testet noget, men det virker heller ikke selvom jeg fjerne den første afvikling.
Dit andet indlæg, hvor skal det stå henne ??? min database åbning funger, og skal vist nok være på denne måde, da min Access DB er sikret og bruger en anden DB som Workgroupfile se evt sag nummer  http://exp.dk/spm/216858
Avatar billede a1a1 Novice
28. maj 2002 - 11:26 #7
strSQL = "INSERT INTO Resultater ("

Skal det bare være (der er åbent bart noget der hedder insertrows, til odbc)

:)
Avatar billede fnuggi Nybegynder
28. maj 2002 - 11:26 #8
Til mundi

smart lille detalje... med at skrive det hele.
her er hvad den skriver
Insert into Resultater (Initialer, Placering, Type, Problem, software, Problemstilling, Priotet, Session, Status, Status_bom, Tidsstempel ) values( 'test' , '' , 'Problem' , 'Hardware' , 'Vælg her' , '', 'Lav' , '424402168' , '1-Ikke behandlet' , '1- Ikke behandlet' , '28-05-2002 11:29:49')
Avatar billede -mundi- Nybegynder
28. maj 2002 - 11:29 #9
Umiddel bart kan jeg ikke se noget forkert, prøv at copy paste det ind i access query builder og kør det, så får du at vide precis hvorhenne der er fejl.

Ellers ville jeg prøve det som a1 foreslår, nemlig at erstatte insertrows med insert
Avatar billede fnuggi Nybegynder
28. maj 2002 - 11:30 #10
hej A1

Det er korrekt, det var også endnu en lille tester, om kommandoen skulle hedde det, det er blevet rettet tilbage til kun Insert, men det hjælper ikke :-(
Avatar billede a1a1 Novice
28. maj 2002 - 11:53 #11
?
tsk, tsk...
(hvordan vil du have hjælp når du ikke kan stille spm. ordentligt :) )

problemet er muligvis dit dato format, lav det om til yyyy-mm-dd hh:mm:ss

mellemrum ?
strSQL = strSQL & " values ( "
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:08 #12
hej A1

Undskyld den lille misser, men det skyldes mine mindre agression over dette problem.... :-( Jeg har prøvet at pille dato ud fra mit statment, så det ikke driller, men kommer stadigvæk med samme fejl:
Insert into Resultater (Initialer, Placering, Type, Problem, software, Problemstilling, Priotet, Session, Status, Status_bom, values( 'test' , '' , 'Problem' , 'Hardware' , 'Vælg her' , '', 'Lav' , '424402176' , '1-Ikke behandlet' , '1- Ikke behandlet')
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/bek_rap.asp, line 54

Nogle ide'er anyone = ???
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:09 #13
hej igen A1

Hva mener du med det sidste du skriver
mellemrum ?
strSQL = strSQL & " values ( "
Avatar billede -mundi- Nybegynder
28. maj 2002 - 12:13 #14
Har du prøvet at køre det directe i access ?
Avatar billede -mundi- Nybegynder
28. maj 2002 - 12:14 #15
og hvor mange af felterne er tekst felter ? der skal jo ikke ' omkring tal felter
Avatar billede a1a1 Novice
28. maj 2002 - 12:14 #16
prøv om det er det
du skriver jo values(
parantesen starter jo lige efter s'et der skal muligvis være mellemrum :)

" values ( "
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:23 #17
Hej igen Mundi

Jeg har prøver at lave en forespørgsel, og skrive insert.... direkte ind i SQL og den kommer også kun med samme fejlmeddelse som web'en.

Alle felter tekst eller notat, eller dato, undtagen Session det er tal. Jeg har prøvet at fjerne '' omkring den, men det hjælper ikke noget. :-(. Jeg vedhæfter en kode der virker bare med ODBC, måske det kan hjælpe lidt.

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/fpdb/Help_desk.mdb")
Conn.Open DSN

strTekst = Request.Form( "Problemstilling" )
strTekst = Replace( strTekst, "'", "''" )

Ini =  Request.Form( "Initialer" )

strSQL = "Insert into Resultater ("

strSQL = strSQL & "Initialer, "
strSQL = strSQL & "Placering, "
strSQL = strSQL & "Type, "
strSQL = strSQL & "Problem, "
strSQL = strSQL & "software, "
strSQL = strSQL & "Problemstilling, "
strSQL = strSQL & "Priotet, "
strSQL = strSQL & "Session, "
strSQL = strSQL & "Status, "
strSQL = strSQL & "Status_bom, "
strSQL = strSQL & "Tidsstempel ) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("Initialer") & "' , "
strSQL = strSQL & "'" & Request.Form("Placering") & "' , "
strSQL = strSQL & "'" & Request.Form("Type") & "' , "
strSQL = strSQL & "'" & Request.Form("Problem") & "' , "
strSQL = strSQL & "'" & Request.Form("software") & "' , "
strSQL = strSQL & "'" & strTekst & "', "
strSQL = strSQL & "'" & Request.Form("Priotet") & "' , "
strSQL = strSQL & "'" & Session.SessionID & "' , "
strSQL = strSQL & "'" & Request.Form("Status") & "' , "
strSQL = strSQL & "'" & Request.Form("Status_bom") & "' , "
strSQL = strSQL & "'" & Request.Form("Tidsstempel") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:25 #18
hej A1

Jeg har prøvet at ændre mellemrummet, men det hjælper ikke :-(
Avatar billede a1a1 Novice
28. maj 2002 - 12:26 #19
du har glemt en ) (i den sidste)
og der er et komma formeget (efter status_bom)

skal være
....Status, Status_bom) values (.....

Insert into Resultater (Initialer, Placering, Type, Problem, software, Problemstilling, Priotet, Session, Status, Status_bom, values( 'test' , '' , 'Problem' , 'Hardware' , 'Vælg her' , '', 'Lav' , '424402176' , '1-Ikke behandlet' , '1- Ikke behandlet')

:)
Avatar billede a1a1 Novice
28. maj 2002 - 12:27 #20
hvor bliver din tidsstempel af ????
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:36 #21
A1 :-)
Jeg har pillet tidsstemplet fra, så det ikke skulle drille os... Det var korrekt det med ), og jeg har rettet det så koden ser således ud

<html>
<title>Bekræftelses side</title>
<head>
</head>
<body>
<%

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:\test help_desk\fpdb\help_desk.mdb;" & _
      "Jet OLEDB:System Database=c:\help_desk\fpdb\Sikret.mdw;", _
      "mip","tulle5"

strTekst = Request.Form( "Problemstilling" )
strTekst = Replace( strTekst, "'", "''" )

Ini =  Request.Form( "Initialer" )

strSQL = "Insert into Resultater ("

strSQL = strSQL & "Initialer, "
strSQL = strSQL & "Placering, "
strSQL = strSQL & "Type, "
strSQL = strSQL & "Problem, "
strSQL = strSQL & "software, "
strSQL = strSQL & "Problemstilling, "
strSQL = strSQL & "Priotet, "
strSQL = strSQL & "Session, "
strSQL = strSQL & "Status, "
strSQL = strSQL & "Status_bom) "
'strSQL = strSQL & "Tidsstempel ) "

strSQL = strSQL & "values ( "

strSQL = strSQL & "'" & Request.Form("Initialer") & "' , "
strSQL = strSQL & "'" & Request.Form("Placering") & "' , "
strSQL = strSQL & "'" & Request.Form("Type") & "' , "
strSQL = strSQL & "'" & Request.Form("Problem") & "' , "
strSQL = strSQL & "'" & Request.Form("software") & "' , "
strSQL = strSQL & "'" & strTekst & "', "
strSQL = strSQL & "'" & Request.Form("Priotet") & "' , "
strSQL = strSQL & "'" & Session.SessionID & "' , "
strSQL = strSQL & "'" & Request.Form("Status") & "' , "
strSQL = strSQL & "'" & Request.Form("Status_bom") & "')"
'strSQL = strSQL & "'" & Request.Form("Status_bom") & "' , "
'strSQL = strSQL & "'" & Request.Form("Tidsstempel") & "')"

response.write strSQL


'SQL sætning eksekveres
Conn.Execute(strSQL)


' Hent fra databasen Nøgle værdien udfra det unikke Sessionsnummer
strSQL = "Select * From Resultater Where Session = " & Session.SessionID
Set rs = Conn.Execute(strSQL)

Og fejlen er Insert into Resultater (Initialer, Placering, Type, Problem, software, Problemstilling, Priotet, Session, Status, Status_bom) values ( 'test' , '' , 'Problem' , 'Hardware' , 'Vælg her' , '', 'Mellem' , '424402190' , '1-Ikke behandlet' , '1- Ikke behandlet')
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/bek_rap.asp, line 55
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:38 #22
Kan det evt. være, at den ikke ved hvilke DB dens kal smide det ned i, jeg har jo både data source og system DB ?????

Til Mundi

Hvad er access query builder ??? og how to use....
Avatar billede fnuggi Nybegynder
28. maj 2002 - 12:39 #23
Hvis vi finder en løsning, er jeg villig til at give flere point... det er jo ikke nogen helt let opgave :-)
Avatar billede -mundi- Nybegynder
28. maj 2002 - 12:47 #24
åbn din database, gå ind i queries/forepørgsler lav en forspørgsel i design mode, paste din SQL query ind og se hvor den markerer for fejl
Avatar billede a1a1 Novice
28. maj 2002 - 13:00 #25
Prøv evt...

strSQL = strSQL & "Initialer, "
strSQL = strSQL & "Placering, "
strSQL = strSQL & "[Type], "
strSQL = strSQL & "Problem, "
strSQL = strSQL & "software, "
strSQL = strSQL & "Problemstilling, "
strSQL = strSQL & "Priotet, "
strSQL = strSQL & "Session, "
strSQL = strSQL & "[Status], "
strSQL = strSQL & "Status_bom) "

hvis nu type eller status skulle være et reserveret ord....
det ser nu ellers rigtigt ud (nu) :)
Avatar billede fnuggi Nybegynder
28. maj 2002 - 15:07 #26
Hej A1

Jeg fik selv samme ide, men det er session som er et reserveret ord... Så nu virkede noget af det lige pludselig, men kun på en ikke sikret db. På en sikret DB kommer den ud med følgende error, og databasen er lukket ned fra alle sider...

Insert into Resultater (Initialer, Placering, Type, Problem, software, Problemstilling, Priotet, [Session], Status, Status_bom, Tidsstempel ) values ( 'mip' , 'mip' , 'Problem' , 'Hardware' , 'mangler' , 'kdkdkddk', 'Lav' , '424402305' , '1-Ikke behandlet' , '1- Ikke behandlet' , '28-05-2002 15:06:10')
Microsoft JET Database Engine error '80004005'

Operation must use an updateable query.

/bek_rap.asp, line 54
Avatar billede fnuggi Nybegynder
28. maj 2002 - 15:22 #27
Har fundet svar selv på http://www.aspemporium.com/aspEmporium/help/helpsys.asp?PRB022.

Det hele ser ud til at kører nu, så mange tak for hjælpen... det har bare været perfekt. Mundi, du må lige lave et svar, hvis du vil have nogle af pointene...
Avatar billede a1a1 Novice
28. maj 2002 - 15:49 #28
:)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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