webForumDet fria alternativet

Vad betyder...

7 svar · 348 visningar · startad av Jörgen HP

Jörgen HPMedlem sedan feb. 20012 179 inlägg
#1

Hej, ibland (1ggr på 50) får jag följande meddelande när jag försöker göra en Insert:

ADODB.Connection.1 error '80004005' 
SQLState: S1090
Native Error Code: 0
[TCX][MyODBC]SQLBindParameter not used for all parameters

vad betyder detta :q

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Hur gör du insert? Har du någon parameter marker?

------------------
essentitia preter non sans multiplicandum

jorgenMedlem sedan feb. 20012 179 inlägg
#3

Hej, min kod ser ut så här:

SQLStmt ="INSERT INTO Inlagg "

SQLStmt = SQLStmt & "(Icon, Ip, Subject, Comment, Bevakning, Inlagg_AnvId, IntForumId, dteDate, LastUpdate, Orginal) "

SQLStmt = SQLStmt & "VALUES('" & Trim(Request.Form("Icon")) & "','" & Ip & "','" & Fixatecken(Trim(Request.Form("Subject"))) & "','" & Fixatecken(Trim(Request.Form("Comment"))) & "'," & Trim(Request.Form("Bevakning")) & ", " & AnvId & ", " & Trim(Request.Form("IntForumId")) & ", Now(), '"&strTid&"', 1) "

objDB.Execute SQLStmt,,128

parameter marker, vad är det?

red: funktionen fixa tecken ser ut så här:

Function FixaTecken(sfix)
sfix = Replace(Trim(sfix), "'", "''")
sfix = Replace(sfix, "|", "")
FixaTecken = sfix
End Function

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 05 dec 2001]

LarsGMedlem sedan dec. 200012 465 inlägg
#4

En parameter marker är ett sätt att parametrisera sql-statements. I stället för ett värde så anger man ett frågetecken och det kallas för en parameter marker.

sql = "insert into ogrish(aleb,bleb) values(?,?)"

När man sedan gör execute så kan man använda ett command-objekt och med det skicka de aktuella värdena. På så sätt så kan man återutnyttja samma statement utan att behöva kompilera om det.

Rutinen SQLBindparameter används för ange ett värde för en parameter marker och då du inte har några sådana så borde den rutinen aldrig anropas.

Den sqlstate som du får betyder att det värde som man försöker skicka som parameter har en ogiltig längd.

I mina ögon så ser det ut som ett fel i ADO. (Om inte request.form("bevakning") kan innehålla ett frågetecken.)

------------------
essentitia preter non sans multiplicandum

jorgenMedlem sedan feb. 20012 179 inlägg
#5

I mina ögon så ser det ut som ett fel i ADO. (Om inte request.form("bevakning") kan innehålla ett frågetecken.)

Nej, den innehåller bara siffrorna 0,1,2 eller 3 förvalda i ett formulär.

Så du menar att det är webhotellets problems?

red: Subject och Comment kan innehålla frågetecken, kan det bero på det. Det verkar som felet inräffar när strängen innehåller ett "?"

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 05 dec 2001]

jorgenMedlem sedan feb. 20012 179 inlägg
#6

Har lokaliserat felet lite till, felmesset uppstår när jag använder " i Comment. Kan jag fixa till min funktion för att undvika detta?

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

LarsGMedlem sedan dec. 200012 465 inlägg
#7

Det verkar mycket konstigt. Om du har " i en sträng i ett sql-statement så skall inte det innebära något. Så helt klart är det fel någonstans (som inte beror på din kod!).

Du kan ju testa att byta " mot \"

------------------
essentitia preter non sans multiplicandum

jorgenMedlem sedan feb. 20012 179 inlägg
#8

Hej!

Du verkade ha rätt, sökte lite på chilliasp supportforum. Det verkade vara ett vanligt problem, som kunde lösas med:

sText = replace(sText,"'","\'")
sText = replace(sText, "?" , "?")

red: det sista frågetecknet ska vara & # 6 3 ;

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 05 dec 2001]

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb