Avatar billede Keld Nielsen Professor
14. august 2003 - 21:54 Der er 11 kommentarer og
1 løsning

For mange felter i opdatering, hvad gør jeg ?

I en opdatering af en database har jeg åbenbart nået en eller anden grænse, jeg får en fejlmeddelse om at der er for mange felter.

Starten af definationen er som her:
strSQL = "Update dffanalyse set "

strSQL = strSQL & "emailadr ='" & Request.Form("emailadr") & "', "
strSQL = strSQL & "URL ='" & Request.Form("URL") & "', "
strSQL = strSQL & "p_Pris001 ='" & Request.Form("p_Pris001") & "', "
strSQL = strSQL & "p_Pris002 ='" & Request.Form("p_Pris002") & "', "
strSQL = strSQL & "p_Pris003 ='" & Request.Form("p_Pris003") & "', "
strSQL = strSQL & "p_Pris004 ='" & Request.Form("p_Pris004") & "', "
strSQL = strSQL & "p_Pris005 ='" & Request.Form("p_Pris005") & "', "
strSQL = strSQL & "p_Pris006 ='" & Request.Form("p_Pris006") & "', "
strSQL = strSQL & "p_Pris007 ='" & Request.Form("p_Pris007") & "', "
strSQL = strSQL & "p_Pris008 ='" & Request.Form("p_Pris008") & "', "
strSQL = strSQL & "p_Pris009 ='" & Request.Form("p_Pris009") & "', "
......osv
ialt ca. 150 linier

Da jeg er nybegynder på ASP-fronten, har jeg brug for en idé ...men den skal skæres lidt ud i pap (skal svare til ham der skal læse det!)
Avatar billede mm12010 Nybegynder
14. august 2003 - 22:02 #1
du kan evt spilte din din SQL op i 2:

strSQL = "Update dffanalyse set .....første del"
connObj.Execute(strSQL)
strSQL = "Update dffanalyse set .....anden del"
connObj.Execute(strSQL)
Avatar billede Keld Nielsen Professor
14. august 2003 - 22:35 #2
Jeg forsøger med det her, men for syntaks fejl:

strSQL = "Update dffanalyse set"

strSQL = strSQL & "emailadr ='" & Request.Form("emailadr") & "', "
strSQL = strSQL & "URL ='" & Request.Form("URL") & "', "
strSQL = strSQL & "p_Pris001 ='" & Request.Form("p_Pris001") & "', "
strSQL = strSQL & "p_Pris002 ='" & Request.Form("p_Pris002") & "', "
strSQL = strSQL & "p_Pris003 ='" & Request.Form("p_Pris003") & "', "
  ...... flere her
strSQL = strSQL & "p_Pris073 ='" & Request.Form("p_Pris073") & "', "
strSQL = strSQL & "p_Pris074 ='" & Request.Form("p_Pris074") & "'"
strSQL = strSQL & " WHERE Id = " & Session("ID")
Conn.Execute(strSQL)

strSQL = "Update dffanalyse set"
strSQL = strSQL & "p_Pris075 ='" & Request.Form("p_Pris075") & "', "
strSQL = strSQL & "p_Pris076 ='" & Request.Form("p_Pris076") & "', "
  ...... flere her
strSQL = strSQL & "p_Pris149 ='" & Request.Form("p_Pris149") & "', "
strSQL = strSQL & "p_Pris150 ='" & Request.Form("p_Pris150") & "'"
strSQL = strSQL & " WHERE Id = " & Session("ID")

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

Response.redirect "tak.html"
%>
Avatar billede Jman Praktikant
14. august 2003 - 22:36 #3
det er højst sandsynligt fordi du når en timeout på din server.
Du kan, som mm12010 skriver, lave flere updates efterhinanden.
Avatar billede Jman Praktikant
14. august 2003 - 22:37 #4
hvad er din syntaxfejl ?
Avatar billede mm12010 Nybegynder
14. august 2003 - 22:38 #5
prøv dig frem :o)

bliv ved med at dele den op til den ikke giver fejl
Avatar billede Keld Nielsen Professor
14. august 2003 - 22:47 #6
Fejlen:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/analyse/updatpor.asp, line 77

...og er nu delt i fire dele, linie 77 er:
Conn.Execute(strSQL)  ...anden gang !
Avatar billede mm12010 Nybegynder
14. august 2003 - 22:52 #7
prøv med en kort en - bare lige for at se om den giver samme fejl:

strSQL = "Update dffanalyse set"
strSQL = strSQL & "p_Pris074 ='" & Request.Form("p_Pris074") & "'"
strSQL = strSQL & " WHERE Id = " & Session("ID")
Avatar billede Keld Nielsen Professor
14. august 2003 - 23:06 #8
Hvis jeg prøver med nogle få går det fint, jeg har prøvet med 35...men når jeg plitter det op går det galt.

Skal de have forskellige "titler" i:
strSQL = "Update dffanalyse set"

Skal hver afsnit ikke afsluttes som f.eks. her:
strSQL = strSQL & "p_Pris074 ='" & Request.Form("p_Pris074") & "'"
strSQL = strSQL & " WHERE Id = " & Session("ID")
Conn.Execute(strSQL)
Avatar billede mm12010 Nybegynder
14. august 2003 - 23:07 #9
strSQL = "Update dffanalyse set " << og husk mellemrummet her
Avatar billede Keld Nielsen Professor
14. august 2003 - 23:12 #10
Der var fejlen !!!!

Tak ...du redde min nattesøvn
Avatar billede mm12010 Nybegynder
14. august 2003 - 23:13 #11
prøv at lukke og åbne igen:

strSQL = strSQL & "p_Pris074 ='" & Request.Form("p_Pris074") & "'"
strSQL = strSQL & " WHERE Id = " & Session("ID")
Conn.Execute(strSQL)
Conn.Close
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mappe/din_database.mdb"))
Avatar billede mm12010 Nybegynder
14. august 2003 - 23:14 #12
:o)
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