webForumDet fria alternativet

ADODB.Command ger Catastrophic failure

3 svar · 280 visningar · startad av pg

pgMedlem sedan feb. 200235 inlägg
#1

Hej

Jag sitter och gör en ASP sida där man uppdaterar text i MySQL. För uppdateringen använder jag ADODB.Command. Men ibland så hänger sig IIS då man kör uppdateringen och det verkar som om det är vid CreateParameter som låsningen sker. Därefter får man Catastrophic failure och det är bara att starta om servern. Har försökt att labba fram felet genom att köra rad för rad och kommit fram till att ADODB.Command inte verkar gilla om tilldelar CreateParameter "null"-värden (om det är null efter deklaration i ASP?)

Ex. sHeadline är VARCHAR(100)

Dim SQL
SQL = " UPDATE tblTable SET "
SQL = SQL & " sHeadline = ? "

Dim Com
Set Com = Server.CreateObject("ADODB.Command")
Com.ActiveConnection = Con
Com.CommandTimeout = 40
Com.CommandType = 1
Com.CommandText = SQL
Com.Prepared = True

Dim sValue
Com.Parameters.Append Com.CreateParameter("sHeadline", 200, 1, 100, sValue) 'Här hänger sig IIS
Com.Execute
Set Com = Nothing

Om jag nu tilldelar sValue ett värde dvs...

Dim sValue
sValue = "Bla bla"
Com.Parameters.Append Com.CreateParameter("sHeadline", 200, 1, 100, sValue)

...så funkar det.

MySQL verkar inte påverkas av låsningen för man kan fortsätta köra denna med t.ex promten.

ADODB.Command är också känslig för om strängen sValue skulle innehålla mer än 100 tecken, men då genereras felet wrong type och IIS fortsätter köra.

Det är i och för sig lätt att kolla strängarna mot t.ex >0 och <=200 men om man skulle glömma detta så blir ju "straffet" lite hårt om servern går ner.

Så därför undrar jag om ni stött på samma problem och om man kan undvika detta dels på administrationsnivå och dels i scriptet? Är det någon inställning i IIS kanske? Kan man ge ADODB.Command direktiv att ignorera fel via någon parameter? För det måste ju gå att förhindra! Nu kör jag på localhost och då är det bara irriternade, men tänk om det skulle gå på en webserver, jag har inte vågat prova. Eller så kanske jag är helt fel ute. Jag är i alla fall tacksam för alla svar.

/PG

Engine^Medlem sedan dec. 20003 887 inlägg
#2

Det är upp till dig att se till att du skickar in korrekta värden till funktionerna.

Är det hela IIS som låser sig eller "bara" den aktuella webben?

pgMedlem sedan feb. 200235 inlägg
#3

Hela IIS låser sig oberoende av script eller webläsare.
Konsting att man i så fall kan stänga en server på detta vis. Vet inte om det kan ha med version av IIS version att göra. Kör Version: 5.1 på XP utan SP1 och SP2

Engine^Medlem sedan dec. 20003 887 inlägg
#4

Skulle det vara versionsproblem skulle det ligga i MDAC isånnafall.

Eftersom jag nu kom att tänka på det, så hittade jag en liten länk som du bör kolla igenom.
http://support.microsoft.com/default.aspx?scid=kb;en-us;839801

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)