|
| Hvorfor vil den ikke fjerne ' Fra : Dcasso |
Dato : 07-08-03 00:47 |
|
Hejsa
Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
I koden har jeg bl.a. følgende
Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
(......)
SQLstmt = "INSERT INTO tbl_Bestillinger (Fornavn,Efternavn"
SQLstmt2 = ") VALUES ('" & Fornavn & "','" & Efternavn & "'"
<-- De bliver selvf. sat sammen til sidst.
Mit problem er at jeg får en fejlbesked der skyldes at ' bliver
overført til selve sql strengen.
Hvordan kan det være?
mvh
Dennis
| |
Ole Nilsson (07-08-2003)
| Kommentar Fra : Ole Nilsson |
Dato : 07-08-03 13:07 |
|
Dcasso wrote in dk.edb.internet.webdesign.serverside.asp:
> Hejsa
>
> Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
>
> I koden har jeg bl.a. følgende
> Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
> (......)
> SQLstmt = "INSERT INTO tbl_Bestillinger (Fornavn,Efternavn"
> SQLstmt2 = ") VALUES ('" & Fornavn & "','" & Efternavn & "'"
> <-- De bliver selvf. sat sammen til sidst.
>
> Mit problem er at jeg får en fejlbesked der skyldes at ' bliver
> overført til selve sql strengen.
>
> Hvordan kan det være?
>
> mvh
> Dennis
Tror du har en replace for meget.
Nielsson
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Dcasso (07-08-2003)
| Kommentar Fra : Dcasso |
Dato : 07-08-03 16:53 |
|
>Tror du har en replace for meget.
Skulle nu passe, en for enkelt quote og en for dobbelt quote
mvh
Dennis
| |
Chrisser (07-08-2003)
| Kommentar Fra : Chrisser |
Dato : 07-08-03 13:23 |
|
Dcasso wrote:
> Hejsa
>
> Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
>
> I koden har jeg bl.a. følgende
> Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
> (......)
Kan du ikke prøve at skille de to replace ad og derefter udskrive Fornavn
før, mellem og efter ?
Umiddelbart synes jeg også det er underligt at erstatte fire dobbelte
anførselstegn med to af samme slags, hvorfor gør du det ?
Chrisser
| |
Dcasso (07-08-2003)
| Kommentar Fra : Dcasso |
Dato : 07-08-03 16:52 |
|
Selvf. lidt simpel debugging, burde jeg have foretaget mig.
Men når man bliver tilpas "gal", så tænker man ikke altid lige klart
:)
mvh
Dennis
On Thu, 7 Aug 2003 14:23:16 +0200, "Chrisser" <cbj@egdatainform.dk>
wrote:
>Dcasso wrote:
>> Hejsa
>>
>> Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
>>
>> I koden har jeg bl.a. følgende
>> Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
>> (......)
>
>Kan du ikke prøve at skille de to replace ad og derefter udskrive Fornavn
>før, mellem og efter ?
>
>Umiddelbart synes jeg også det er underligt at erstatte fire dobbelte
>anførselstegn med to af samme slags, hvorfor gør du det ?
>
>Chrisser
>
| |
Dcasso (07-08-2003)
| Kommentar Fra : Dcasso |
Dato : 07-08-03 17:01 |
|
>Umiddelbart synes jeg også det er underligt at erstatte fire dobbelte
>anførselstegn med to af samme slags, hvorfor gør du det ?
Lige ang dette, så er det fordi at jeg jo skal bruge en string som den
skal lede efter, altså ml. " og ", og da jeg leder efter " i teksten
skal jeg bruge to af dem for at den jo ved, at jeg leder efter den som
værdi.
Jeg replacer den med 2 stk., da det er en tom string, således at de
ikke gemmes fremover.
mvh
Dennis
| |
Thomas Due (07-08-2003)
| Kommentar Fra : Thomas Due |
Dato : 07-08-03 13:32 |
|
Dcasso wrote:
> Hejsa
>
> Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
>
> I koden har jeg bl.a. følgende
> Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
> (......)
> SQLstmt = "INSERT INTO tbl_Bestillinger (Fornavn,Efternavn"
> SQLstmt2 = ") VALUES ('" & Fornavn & "','" & Efternavn & "'"
> <-- De bliver selvf. sat sammen til sidst.
>
> Mit problem er at jeg får en fejlbesked der skyldes at ' bliver
> overført til selve sql strengen.
>
> Hvordan kan det være?
>
> mvh
> Dennis
Hv is jeg forstår dig rigtigt vil du have escape'et evt. enkelte quotes
i din streng. Dette kan du gøre ved at bruge følgende funktion:
Function QuotedStr(AString)
if AString <> "" then
QuotedStr = "'" + Replace(AString, "'", "''") + "'"
else
QuotedStr = "''"
end if
End Function
Det som funktionen gør, er ganske enkelt at sætte to ' (enkelte quotes)
alle steder hvor der er en i strengen. Til sidst sættes en enkelt quote
foran og bagefter strengen.
--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
| |
Dcasso (07-08-2003)
| Kommentar Fra : Dcasso |
Dato : 07-08-03 16:52 |
|
Hej
Det forsøge jeg også først :) Men det ville den ikke finde sig i,
derfor forsøgte jeg at fjerne dem, og det gør den ikke.
Har gjort det så mange gange før, så det irriterer mig ganske meget :)
Men tak for forslaget (virker normalt)
mvh
Dennis
On Thu, 7 Aug 2003 12:31:54 +0000 (UTC), "Thomas Due"
<t.due@scanvaegt_REMOVE.dk> wrote:
>Dcasso wrote:
>
>> Hejsa
>>
>> Jeg skal sende en insert-sql statement til en MsSQL og det går galt.
>>
>> I koden har jeg bl.a. følgende
>> Fornavn = replace(replace(request.form("Fornavn"),"'",""),"""","")
>> (......)
>> SQLstmt = "INSERT INTO tbl_Bestillinger (Fornavn,Efternavn"
>> SQLstmt2 = ") VALUES ('" & Fornavn & "','" & Efternavn & "'"
>> <-- De bliver selvf. sat sammen til sidst.
>>
>> Mit problem er at jeg får en fejlbesked der skyldes at ' bliver
>> overført til selve sql strengen.
>>
>> Hvordan kan det være?
>>
>> mvh
>> Dennis
>
>Hv is jeg forstår dig rigtigt vil du have escape'et evt. enkelte quotes
>i din streng. Dette kan du gøre ved at bruge følgende funktion:
>
>Function QuotedStr(AString)
> if AString <> "" then
> QuotedStr = "'" + Replace(AString, "'", "''") + "'"
> else
> QuotedStr = "''"
> end if
>End Function
>
>Det som funktionen gør, er ganske enkelt at sætte to ' (enkelte quotes)
>alle steder hvor der er en i strengen. Til sidst sættes en enkelt quote
>foran og bagefter strengen.
| |
Dcasso (07-08-2003)
| Kommentar Fra : Dcasso |
Dato : 07-08-03 17:12 |
|
Lige en opfølgning:
Her er et eksempel på hvor det går galt:
INSERT INTO tbl_Bestillinger
(Fornavn,Efternavn,Linie,Rushold,Telefon,Email,Adresse,Sted,Postnr)
VALUES
('fsdf','jkflsdd','HA','HA_1-2','dksjahd','jkldjfl@jklasdf.com','dsfslja','sdfksj','sdfjkælsdfjkl')
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near 'jkflsdd'.
Værdien ved fornavn var oprindeligt fsdf', men hvordan kan det ikke
virke, når den jo i sql stmt indsætter den korrekte udgave
mvh
Dennis
| |
Ukendt (07-08-2003)
| Kommentar Fra : Ukendt |
Dato : 07-08-03 21:11 |
|
Hvis du tester på din ejen comp med en server du har sat op på den så prøv
at genstarte der kan godt være nogle gange hvor den ikke vil forstå den
rigtige kode
"Dcasso" <ikke@oplyst_pga_spam.dk> skrev i en meddelelse
news:leu4jvs819h4avv34njkgv7h6umr1aotf2@4ax.com...
> Lige en opfølgning:
>
> Her er et eksempel på hvor det går galt:
>
> INSERT INTO tbl_Bestillinger
> (Fornavn,Efternavn,Linie,Rushold,Telefon,Email,Adresse,Sted,Postnr)
> VALUES
>
('fsdf','jkflsdd','HA','HA_1-2','dksjahd','jkldjfl@jklasdf.com','dsfslja','s
dfksj','sdfjkælsdfjkl')
> Microsoft OLE DB Provider for SQL Server error '80040e14'
>
> Line 1: Incorrect syntax near 'jkflsdd'.
>
>
> Værdien ved fornavn var oprindeligt fsdf', men hvordan kan det ikke
> virke, når den jo i sql stmt indsætter den korrekte udgave
>
> mvh
> Dennis
| |
Chrisser (08-08-2003)
| Kommentar Fra : Chrisser |
Dato : 08-08-03 07:44 |
|
Dcasso wrote:
> Lige en opfølgning:
>
> Her er et eksempel på hvor det går galt:
>
> INSERT INTO tbl_Bestillinger
> (Fornavn,Efternavn,Linie,Rushold,Telefon,Email,Adresse,Sted,Postnr)
> VALUES
>
('fsdf','jkflsdd','HA','HA_1-2','dksjahd','jkldjfl@jklasdf.com','dsfslja','s
dfksj','sdfjkælsdfjkl')
> Microsoft OLE DB Provider for SQL Server error '80040e14'
>
> Line 1: Incorrect syntax near 'jkflsdd'.
Den ser jo OK ud.
Din sql bliver ikke forkert ombrudt i selve koden ? Hvordan sætter du den
sammen i ASP'en ?
Chrisser
| |
|
|