Avatar billede kolme Nybegynder
28. marts 2007 - 10:18 Der er 15 kommentarer og
1 løsning

Timeout ved kald til MSSQL

Jeg har følgende stump kode, der resulterer i, at hjemmesiden timer ud. Problemet er først opstået efter at den database jeg vil restore er blevet 50+ MB i stedet for omkring 35. Jeg har forsøgt at ændre timeout på IIS'en, men det timer stadig ud efter 30 sek.
Derfor er mit spørgsmål: Hvordan kan jeg få følgende kode til at forlænge timeout perioden? Jeg har set at det findes en 'commandtimeout', men kan ikke rigtig finde ud af hvordan jeg skal inkorporere denne i min kode.
Jeg ved godt at jeg i nedenstående kunne bruge en ExecuteNonQuery i stedet for ExecuteScalar. Jeg havde engang en forventning om at jeg skulle have returneret noget, men det er aldrig sket. Så forslag til både Scalar og NonQuery er meget velkomne!

På forhånd tak
SqlParameter[] parm = new SqlParameter[2];
parm[0] = new SqlParameter("@newDatabaseName", Firmanavn);
parm[1] = new SqlParameter("@sprog", SprogValg);
SqlHelper.ExecuteScalar(AppSettings.getConnString,CommandType.StoredProcedure,"RestoreDatabase",parm);
Avatar billede softspot Forsker
28. marts 2007 - 10:30 #1
Det er et timeout som kan sættes på command-objektet (sådan er det i det mindste i .NET 1.1). Egenskaben hedder CommandTimeout.
Avatar billede kolme Nybegynder
28. marts 2007 - 10:39 #2
Ja, det er jeg nemlig klar over. Problemet er hvordan jeg bruger det ifbm. denne her sql-helper?
Avatar billede kalp Novice
28. marts 2007 - 10:45 #3
du skal sætte det på din connection.. f.eks

SqlConnection connection = new SqlConnection(connectionString);
connection.ConnectionTimeout = 250;
Avatar billede softspot Forsker
28. marts 2007 - 10:51 #4
Aaah! Sorry! Jeg skal lære at læse... :$

Umiddelbart ville jeg forvente at der fandtes en overloaded udgave af ExecuteScalar på SqlHelper-objektet som tillod en mere detaljeret opsætning af forspørgslen.

SqlHelper er vel ikke et standardobjekt i .NET, er det?
Avatar billede softspot Forsker
28. marts 2007 - 10:53 #5
kalp >> Er det ikke kun timeout for selve forsøget på at skabe en forbindelse? Det er vel ikke forbindelsens levetid...?
Avatar billede kalp Novice
28. marts 2007 - 10:56 #6
mig der vrøvler!!

den her

Command.CommandTimeout = 250;
Avatar billede kalp Novice
28. marts 2007 - 10:57 #7
Det er dette objekt..

SqlCommand command = new SqlCommand();
command.CommandTimeout = 250;
Avatar billede softspot Forsker
28. marts 2007 - 10:58 #8
kalp >> Der er bare ikke noget command-objekt hvor den kan sættes ;-)
Avatar billede kalp Novice
28. marts 2007 - 11:04 #9
softspot >> Det kan jeg godt:) og jeg er vel ikke den eneste som er velsignet med dette så måske har du bare overset det.
Avatar billede softspot Forsker
28. marts 2007 - 11:07 #10
Hvis du kan bruge et eksempel som ikke benytter SqlHelper-objektet, så kunne dette måske bruges:

string sql = "RestoreDatabase";
using(SqlConnection cn = new SqlConnection(AppSettings.getConnString)) {
  cn.Open();
  SqlCommand cmd = new SqlCommand(sql, cn);
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.CommandTimeout = 600;
  cmd.Parameters.Add("@newDatabaseName", Firmanavn);
  cmd.Parameters.Add("@sprog", SprogValg);
  cmd.ExecuteNonQuery();
}
Avatar billede kalp Novice
28. marts 2007 - 11:09 #11
hmm.. du mener i forhold til spørgers kode?:P
det kan være den der Sql helpher har SqlHelper.SqlHelperTimeout :P
Avatar billede softspot Forsker
28. marts 2007 - 11:11 #12
kalp >> ja, jeg tænkte også at den helper-klasse måske var lidt avanceret og tilbød den slags, men det er svært at vide uden at kende objektet (og jeg ved ikke om det findes som standard i .NET).
Avatar billede kalp Novice
28. marts 2007 - 11:19 #13
her er dokumentation for den.
http://www.mediachase.com/documentation/FileUploader/Api/Mediachase.FileUploader.SqlHelperMembers.html

og jeg kan ikke se det smarte i den.. ligner bare en forsimplet klasse af command.
Avatar billede kolme Nybegynder
28. marts 2007 - 12:48 #14
Tak for hjælpen. Softspot, jeg mener at det må være dig, der er berettiget til point. Din løsningen sidder da bare lige i skabet! :-)
Smider du et svar?
Avatar billede softspot Forsker
28. marts 2007 - 13:17 #15
Ja, det kommer her. Velbekomme :)
Avatar billede softspot Forsker
28. marts 2007 - 13:29 #16
Tak for point :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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