Avatar billede Slettet bruger
14. maj 2003 - 15:32 Der er 22 kommentarer og
1 løsning

' i Database

Hej
Jeg har lavet en formular som lægger data i en acces database og det virker fint. Det eneste problem jeg ikke kan løse  er hvis folk sætter ' ind i teksten får de en fejl.
Koden ser sådan ud:
<%
strDSN_bestil = "DSN=test; MaxBufferSize=512;PageTimeout=2;"

strSQL = "Insert into test (Projektnavn, Projektbeskrivelse,Teamejer,) values('" & Request.Form("Projektnavn")& "', '" & Request.Form("Projektbeskrivelse")& "', '" & Request.Form("Teamejer") & "')"

set rsPost = Server.CreateObject("ADODB.Recordset")
rsPost.Open strSQL, strDSN_test

%>
Er der nogen der kan løse det?
Avatar billede keysersoze Ekspert
14. maj 2003 - 15:34 #1
replace ' med '' - fx;

strSQL = "Insert into test (Projektnavn, Projektbeskrivelse,Teamejer,) values('" & replace(Request.Form("Projektnavn"),"'","''") & "', '" & replace(Request.Form("Projektbeskrivelse"),"'", "''") & "', '" & replace(Request.Form("Teamejer"),"'","''") & "')"
Avatar billede Slettet bruger
14. maj 2003 - 15:55 #2
Jeg får flg. fejl
Microsoft VBScript compilation error '800a03ee'

Expected ')'

/d_projekt/be_projekter_copy(1).asp, line 8

strSQL = "Insert into Projekter (Projektnavn, Projektbeskrivelse,Teamejer,deltagerprojektleder,overstrategisketiltag,strategisketiltag,iprojekter,ovrigeprojekter,prioritet ,projektfase,Projektstatus,Tidsfrist) values('" & replace (Request.Form("Projektnavn"),"," & "," & replace (Request.Form("Projektbeskrivelse"),"," & "," & replace (Request.Form("Teamejer"),"," & "," & replace (Request.Form("deltagerprojektleder"),"," & "," & replace (Request.Form("overstrategisketiltag"),"," & "," & replace (Request.Form("strategisketiltag"),"," & "," & replace (Request.Form("iprojekter"),"," & "," & replace (Request.Form("ovrigeprojekter"),"," & "," & replace (Request.Form("prioritet"),"," & "," & replace (Request.Form("projektfase"),"," & "," & replace (Request.Form("Projektstatus"),"," & "," & replace (Request.Form("Tidsfrist"),",")& ")"
Avatar billede -master-d- Nybegynder
14. maj 2003 - 15:58 #3
Det skal hedde :

strSQL = "Insert into Projekter (Projektnavn, Projektbeskrivelse,Teamejer,deltagerprojektleder,overstrategisketiltag,strategisketiltag,iprojekter,ovrigeprojekter,prioritet ,projektfase,Projektstatus,Tidsfrist) values('" & replace (Request.Form("Projektnavn"),",") & "," & replace (Request.Form("Projektbeskrivelse"),",") & "," & replace (Request.Form("Teamejer"),",") & "," & replace (Request.Form("deltagerprojektleder"),",") & "," & replace (Request.Form("overstrategisketiltag"),",") & "," & replace (Request.Form("strategisketiltag"),",") & "," & replace (Request.Form("iprojekter"),"," & ",") & replace (Request.Form("ovrigeprojekter"),",") & "," & replace (Request.Form("prioritet"),",") & "," & replace (Request.Form("projektfase"),",") & "," & replace (Request.Form("Projektstatus"),",") & "," & replace (Request.Form("Tidsfrist"),",")& ")"
Avatar billede Slettet bruger
14. maj 2003 - 16:11 #4
Nu får jeg denne fejl
Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'replace'

be_projekter.asp, line 9
Avatar billede monstersurf Praktikant
14. maj 2003 - 16:13 #5
replace (Request.Form("NOGET"),"'","''")
Avatar billede monstersurf Praktikant
14. maj 2003 - 16:14 #6
det er  (Request.Form("NOGET")," ' " , " ' ' " )


giver et lidt lettere overblick ;)
Avatar billede -master-d- Nybegynder
14. maj 2003 - 16:15 #7
Sådan der :

strSQL = "Insert into Projekter (Projektnavn, Projektbeskrivelse,Teamejer,deltagerprojektleder,overstrategisketiltag,strategisketiltag,iprojekter,ovrigeprojekter,prioritet ,projektfase,Projektstatus,Tidsfrist) values('" & replace(Request.Form("Projektnavn"),"'","''") & "," & replace(Request.Form("Projektbeskrivelse"),"'","''") & "," & replace(Request.Form("Teamejer"),"'","''") & "," & replace(Request.Form("deltagerprojektleder"),"'","''") & "," & replace(Request.Form("overstrategisketiltag"),"'","''") & "," & replace(Request.Form("strategisketiltag"),"'","''") & "," & replace(Request.Form("iprojekter"),"'","''") & "," & replace(Request.Form("ovrigeprojekter"),"'","''") & "," & replace(Request.Form("prioritet"),"'","''") & "," & replace(Request.Form("projektfase"),"'","''") & "," & replace(Request.Form("Projektstatus"),"'","''") & "," & replace(Request.Form("Tidsfrist"),"'","''") & ")"
Avatar billede -master-d- Nybegynder
14. maj 2003 - 16:16 #8
monstersurf : det kan godt være det giver et bedre overblik, men det har ikke samme funktion. (Request.Form("NOGET")," ' " , " ' ' " ) replacer fx. ikke "re't", men kun hvis der stod "ret ' t".

Og det går jo ikke.
Avatar billede Slettet bruger
14. maj 2003 - 16:22 #9
Uanset så virker det ikke
Avatar billede keysersoze Ekspert
14. maj 2003 - 16:22 #10
først og fremmest skal du have styr på hvad der er tekst/notat-felter og hvad der ikke er... 

tekst/notat-felter skal indsættes sådan; '" & VAR & "'
og tal sådan; " & VAR & "
og så hedder en replacefunktion dette; replace(VAR,"'","''")
Avatar billede Slettet bruger
14. maj 2003 - 16:24 #11
Hej alle
Tak for hjælpen, jeg bliver desværre nødt til at lukke nu.
Avatar billede hossein Nybegynder
14. maj 2003 - 17:41 #12
Fjern , efter teameje i din sql sætning:
strSQL = "Insert into test (Projektnavn, Projektbeskrivelse,Teamejer,) ...
Avatar billede Slettet bruger
15. maj 2003 - 10:37 #13
Er du sikker på det, hvis du er der nu ?
Avatar billede keysersoze Ekspert
11. juli 2003 - 16:13 #14
er du kommet videre?
Avatar billede Slettet bruger
11. juli 2003 - 16:17 #15
Nej , det er jeg faktisk ikke
Avatar billede keysersoze Ekspert
11. juli 2003 - 16:32 #16
ok - så fortæl hvor du er gået i stå så vi kan yde lidt mere hjælp
Avatar billede Slettet bruger
11. juli 2003 - 16:48 #17
Ja, tak.
Sådan ser min kode ud:
<%
strDSN_bestil = "DSN=projekter; MaxBufferSize=512;PageTimeout=2;"

strSQL = "Insert into Projekter (Projektnavn, Projektbeskrivelse, Teamejer, deltagerprojektleder,overstrategisketiltag,strategisketiltag,installationsprojekter,ovrigeprojekter,prioritet ,projektfase,Projektstatus,Tidsfrist) values('" & replace (Request.Form("Projektnavn"),",") & "," & replace (Request.Form("Projektbeskrivelse"),",") & "," & replace (Request.Form("Teamejer"),",") & "," & replace (Request.Form("deltagerprojektleder"),",") & "," & replace (Request.Form("overstrategisketiltag"),",") & "," & replace (Request.Form("strategisketiltag"),",") & "," & replace (Request.Form("installationsprojekter"),"," & ",") & replace (Request.Form("ovrigeprojekter"),",") & "," & replace (Request.Form("prioritet"),",") & "," & replace (Request.Form("projektfase"),",") & "," & replace (Request.Form("Projektstatus"),",") & "," & replace (Request.Form("Tidsfrist"),",")& ")"

set rsPost = Server.CreateObject("ADODB.Recordset")
rsPost.Open strSQL, strDSN

%>
Avatar billede keysersoze Ekspert
11. juli 2003 - 16:50 #18
hvis du indsætter i tekst eller notatfelter skal der enkelt-pling omkring - så

" & replace (Request.Form("Projektbeskrivelse"),",") & ",

bliver til

'" & replace (Request.Form("Projektbeskrivelse"),",") & "',

det er kun tal-felter der ikke skal enkelt-pling omkring. Ret det, og fortæl derefter hvilken fejl der meldes.
Avatar billede Slettet bruger
11. juli 2003 - 17:07 #19
jeg får denne fejl. Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'replace'

be_projekter2.asp, line 4

<%
strDSN_bestil = "DSN=projekter; MaxBufferSize=512;PageTimeout=2;"

strSQL = "Insert into Projekter (Projektnavn, Projektbeskrivelse, DTeamejer, Ddeltagerprojektleder,overstrategisketiltag,strategisketiltag,installationsprojekter,ovrigeprojekter,Dprioritet ,projektfase,Projektstatus,Tidsfrist) values('" & replace (Request.Form("Projektnavn"),",") & ",'" & replace (Request.Form("Projektbeskrivelse"),",") & "','" & replace (Request.Form("DTeamejer"),",") & "','" & replace (Request.Form("Ddeltagerprojektleder"),",") & "','" & replace (Request.Form("overstrategisketiltag"),",") & "','" & replace (Request.Form("strategisketiltag"),",") & "','" & replace (Request.Form("installationsprojekter"),"," & "','") & replace (Request.Form("ovrigeprojekter"),",") & "','" & replace (Request.Form("Dprioritet"),",") & "','" & replace (Request.Form("projektfase"),",") & "','" & replace (Request.Form("Projektstatus"),",") & "','" & replace (Request.Form("Tidsfrist"),",")& "')"
set rsPost = Server.CreateObject("ADODB.Recordset")
rsPost.Open strSQL, strDSN_bestil
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 


%>
Avatar billede keysersoze Ekspert
11. juli 2003 - 20:08 #20
du skal ikke have mellemrum i replace - altså ikke;

'" & replace(Request.Form("Projektbeskrivelse"),",") & "'

men sådan

'" & replace(Request.Form("Projektbeskrivelse"),",") & "'

samtidig skal du altså sørge for afslutte alt hvad du starter - fx mangler du en pling her;

'" & replace (Request.Form("Projektnavn"),",") & ",

så den skal hedde

'" & replace (Request.Form("Projektnavn"),",") & "',
Avatar billede Slettet bruger
14. juli 2003 - 14:31 #21
Jeg har nu fulgt dit råd og koden ser nu sådan ud:
strSQL = "Insert into Projektertest (Projektnavn, Projektbeskrivelse) values('" & replace (Request.Form("Projektnavn"),",") & "','"& replace(Request.Form("Projektbeskrivelse"),",")& "')"
Så får jeg denne fejl

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'replace'

/d_projekt/be_projekter2.asp, line 10
Avatar billede keysersoze Ekspert
14. juli 2003 - 14:43 #22
der er stadig mellemrum efter replace i den første - og så bruger du ikke replace-funktionen som jeg helt til at starte med fortalte den skulle bruges;

strSQL = "Insert into Projektertest (Projektnavn, Projektbeskrivelse) values('" & replace(Request.Form("Projektnavn"),"'","''") & "','" & replace(Request.Form("Projektbeskrivelse"),"'","''") & "')"
Avatar billede Slettet bruger
15. juli 2003 - 10:29 #23
Hej Keysersoze
Yes, nu virker det. Tusind tak for hjælpen og din tålmodighed.
Hilsen Liri
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