Avatar billede kalaharikid Nybegynder
23. april 2003 - 14:04 Der er 13 kommentarer og
1 løsning

INSERT FEJL - Ka' æt' hit' u' a' de' !

Jeg sidder med en ordenlig møghund af en SQL sætning - Og har provet at splitte den op - For bedre at kunne overskue den - Men : Nu virker den ikke og giver fejlen :

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.

Jeg vedlægger kun den del der har med sql at gøre og håber et af jeres storslåede høgeblikke kan spotte fejlen ?

Undertegnede er gået kodeblind ;-)

<%
'STEP 6 : PREPARE SERVER SIDE HANDLING SCRIPT
'Saving the edited content back to the database
if Request.QueryString("action") = "save" then
    dim strTitle, strContent, strDocBgColor, strStartD, strSlutD, strStartM, strSlutM, strStartY, strSlutY, strSted, strBem, strArr, strTid, strOpr, strGodkendt
    strTitle = Request.Form("txtTitle")
    strContent = Request.Form("txtContent")
    strStartD = Request.Form("begdated")
    strSlutD = Request.Form("enddated")
    strStartM = Request.Form("begdatem")
    strSlutM = Request.Form("enddatem")
    strStartY = Request.Form("begdatey")
    strSlutY = Request.Form("enddatey")
    strSted = Request.Form("sted")
    strBem = Request.Form("bem")
    strArr = Request.Form("arr")
    strTid = Request.Form("time") & ":" & Request.Form("minut")
    strOpr = Now ()
    strDocBgColor = Request.Form("txtDocBgColor")
    strGodkendt = Request.Form("godkendt")
    dim adoCn
    dim strSQL
    set adoCn = Server.CreateObject("ADODB.Connection")
    adoCn.Open MM_connKal_STRING
    strSQL = "Insert Into t_arr ('"
    strSQL = strSQL & "titel,"
    strSQL = strSQL & "beskrivelse,"
    strSQL = strSQL & "startdato,"
    strSQL = strSQL & "slutdato,"
    strSQL = strSQL & "startmaaned, "
    strSQL = strSQL & "slutmaaned, "
    strSQL = strSQL & "startaar, "
    strSQL = strSQL & "slutaar, "
    strSQL = strSQL & "sted, "
    strSQL = strSQL & "bemaerkninger, "
    strSQL = strSQL & "arrangoer, "
    strSQL = strSQL & "tid, "
    strSQL = strSQL & "oprettet, "
    strSQL = strSQL & "BgColor,"
    strSQL = strSQL & "godkendt)"
   
      strSQL = strSQL & " Values ('"
      strSQL = strSQL & replace(strTitle,"'","''") & "','"
      strSQL = strSQL & replace(strContent,"'","''") & "','"
      strSQL = strSQL & strStartD & "','"
      strSQL = strSQL & strSlutD & "','"
      strSQL = strSQL & strStartM  & "','"
      strSQL = strSQL & strSlutM & "','"
      strSQL = strSQL & strStartY & "','"
      strSQL = strSQL & strSlutY & "','"
      strSQL = strSQL & replace(strSted,"'","''") & "','"
      strSQL = strSQL & replace(strBem,"'","''") & "','"
      strSQL = strSQL & replace(strArr,"'","''") & "','" 
      strSQL = strSQL & strTid & "','"
      strSQL = strSQL & strOpr & "','"
      strSQL = strSQL & strDocBgColor  &  "','"
      strSQL = strSQL & strGodkendt & "')"
    adoCn.Execute strSQL
    adoCn.Close
    set adoCn = nothing
   
    Response.Redirect "kal_default.asp"
end if
%>
Avatar billede amd Nybegynder
23. april 2003 - 14:20 #1
adoCn.Execute(strSQL)

ka ik lige umiddelbart se fejlen, hvis ikke det hjælper at skrive sqlen sådan.
Avatar billede eagleeye Praktikant
23. april 2003 - 14:24 #2
Det er mange mulige fejl i den SQL. Hvilken type er de forskellige kolonner?
Eksvis hvis en kolonne er defineret som tal skal der ikke ' omkring i SQLen.
Hvis dine datoer er defineret som dato/klokkeslæt skal der # omkring. Og så bruger man US/UK format SQL som er yyyy-mm-dd eller mm-dd-yyyy
Avatar billede dk_akj Nybegynder
23. april 2003 - 14:25 #3
prøv lige at fjerne "adoCn.Execute strSQL"  og alt derefter og indsæt response.write strSQL
Så kan det være fejlen er let at få øje på.
Post evt det du får skrevet ud ker.

//akj
Avatar billede kalaharikid Nybegynder
23. april 2003 - 14:26 #4
Ved forkert datatype skal den da ikke skrive "Type Mismatch" ???
Avatar billede eagleeye Praktikant
23. april 2003 - 14:30 #5
Ikke nødvendigvis, men så bare sig ja eller nej til at de alle er defineret som tekst?
Avatar billede kalaharikid Nybegynder
23. april 2003 - 14:30 #6
AKJ > Sådan her ser fætteren ud ved response.write :

Insert Into t_arr ('titel,beskrivelse,startdato,slutdato,startmaaned, slutmaaned, startaar, slutaar, sted, bemaerkninger, arrangoer, tid, oprettet, BgColor,godkendt) Values ('ghlkhglkhglk','<P>Her kan du skrive ..fg</P>
<P>fgfg</P>
<P>fgfg</P>
<P>&nbsp;</P>','23','30','4','4','2003','2003','fikjtrgkj','','fgvlkglkfg','12:00','23-04-2003 14:26:57','','-1')
Avatar billede dk_akj Nybegynder
23. april 2003 - 14:33 #7
du skal kun have ' om tal hvis de er felttypen i db'en er text.

//akj
Avatar billede -mundi- Nybegynder
23. april 2003 - 14:33 #8
strSQL = "Insert Into t_arr ("
    strSQL = strSQL & "titel,"
    strSQL = strSQL & "beskrivelse,"
    strSQL = strSQL & "startdato,"
    strSQL = strSQL & "slutdato,"
    strSQL = strSQL & "startmaaned, "
    strSQL = strSQL & "slutmaaned, "
    strSQL = strSQL & "startaar, "
    strSQL = strSQL & "slutaar, "
    strSQL = strSQL & "sted, "
    strSQL = strSQL & "bemaerkninger, "
    strSQL = strSQL & "arrangoer, "
    strSQL = strSQL & "tid, "
    strSQL = strSQL & "oprettet, "
    strSQL = strSQL & "BgColor,"
    strSQL = strSQL & "godkendt)"
   
      strSQL = strSQL & " Values ('"
      strSQL = strSQL & replace(strTitle,"'","''") & "','"
      strSQL = strSQL & replace(strContent,"'","''") & "','"
      strSQL = strSQL & strStartD & "','"
      strSQL = strSQL & strSlutD & "','"
      strSQL = strSQL & strStartM  & "','"
      strSQL = strSQL & strSlutM & "','"
      strSQL = strSQL & strStartY & "','"
      strSQL = strSQL & strSlutY & "','"
      strSQL = strSQL & replace(strSted,"'","''") & "','"
      strSQL = strSQL & replace(strBem,"'","''") & "','"
      strSQL = strSQL & replace(strArr,"'","''") & "','" 
      strSQL = strSQL & strTid & "','"
      strSQL = strSQL & strOpr & "','"
      strSQL = strSQL & strDocBgColor  &  "','"
      strSQL = strSQL & strGodkendt & "')"
Avatar billede eagleeye Praktikant
23. april 2003 - 14:33 #9
Der er kommet et ' ind før kolonne navnet titel prøv at fjerne det;:

    strSQL = "Insert Into t_arr ('" <-------------- Et ' som ikke skal være der
    strSQL = strSQL & "titel,"

sådan her:
    strSQL = "Insert Into t_arr ("
    strSQL = strSQL & "titel,"
Avatar billede dk_akj Nybegynder
23. april 2003 - 14:35 #10
skarpt set "eagleeye" :-)

//akj
Avatar billede kalaharikid Nybegynder
23. april 2003 - 14:38 #11
datoerne (dag, maaned, år) er defineret som tal (og lander i hvert sit felt) og godkendt er checkboks, ellers er alle tekst og notatfelter (pånær ID)?
Avatar billede dk_akj Nybegynder
23. april 2003 - 14:40 #12
så skal du lige fjerne gnyfferne omkrig tallene.

//akj
Avatar billede eagleeye Praktikant
23. april 2003 - 14:40 #13
Ok som før skrevet så skal der ikke ' omkring tal felter. Og Ja/Nej skal ligges ind som et tal felt uden ' og man bruger 1 / true for Ja  og 0 / false for Nej
Avatar billede kalaharikid Nybegynder
23. april 2003 - 14:42 #14
I er nogle rigtige gulddrenge (M/K) !!! eagleeye så den lille dumme - Og den opdaterer faktisk nu - uden andre ændringer - Men jeg skal nok !!!

TAK !!
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