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