Avatar billede lifeweb Nybegynder
30. april 2008 - 16:43 Der er 16 kommentarer

Flere insert-sql'er

Hej

Jeg har brug for at køre, måske, 500 forskellige sql-sætninger op mod en MSSQL.

Jeg oplever et timeout - og har forsøgt at sætte scripttimeout op...
Er der mon noget jeg kan gøre?
Avatar billede w13 Novice
30. april 2008 - 16:46 #1
Du kunne måske opdatere siden efter hver 10. SQL-sætning eller noget i den stil?

Så når de første 10 er kørt, linker du måske til siden.asp?sql=20
og derefter siden.asp?sql=30
Avatar billede w13 Novice
30. april 2008 - 16:46 #2
Så har du også mulighed for at vise brugeren, hvor mange procent, der er kørt.
Avatar billede w13 Novice
30. april 2008 - 16:52 #3
Du har f.eks. prøvet:

Server.ScriptTimeout = 1000


?
Avatar billede w13 Novice
30. april 2008 - 16:52 #4
(I toppen af koden altså.)
Avatar billede lifeweb Nybegynder
30. april 2008 - 17:18 #5
jeps... jeg har prøvet med server.scripttimeout - desværre virkede det ikke

jeg tror måske det er noget med at jeg åbner for mange forbindelser eller så'n noget...

er der andre muligheder end at reloade siden?
Avatar billede w13 Novice
30. april 2008 - 18:06 #6
Det kan da også være, din kode bare skal bygges lidt smartere op. Har vi mulighed for at se den?
Avatar billede bondester Nybegynder
30. april 2008 - 18:44 #7
Som hovedregel behøver du jo kun åbne én forbindelse.
Alle inserts executes så på denne forbindelse!
Avatar billede cpufan Juniormester
30. april 2008 - 21:33 #8
du har nok et loop, der kører evigt.

- og som bondester skriver behøver du kun at åbne et forbindelse.

har siden nogensinde virket?

kommer der en fejlmeddelelse?
Avatar billede lifeweb Nybegynder
01. maj 2008 - 10:56 #9
hej

jeg kan desværre ikke smide min kode afsted til jer - beklager

jeg laver en select, for derefter at lave nogle inserts inde i denne...

koden har tidligere virket - dog meget langsomt, men uden at timeoute

er det måske et spørgsmål om at samle samtlige insert sætninger sammen, og så køre dem bagefter de er dannet - altså udenom select-sætningerne.?
Avatar billede w13 Novice
01. maj 2008 - 11:13 #10
Det er meget svært at hjælpe uden at se, hvordan du gør.

Som bondester skriver: opretter du forbindelse til databasen flere gange? For det skal man jo bestemt undgå.
Avatar billede lifeweb Nybegynder
01. maj 2008 - 12:07 #11
jeg tror ikke jeg opretter forbindelse flere gange - jeg brugere bare conn.execute(sql) for alle mine sql's

er der noget der skal lukkes der?
Avatar billede w13 Novice
01. maj 2008 - 12:12 #12
Nej, det er sådan, man bør.

Henter du data med dem eller hvordan?

F.eks. "SELECT * FROM..." ?
Avatar billede lifeweb Nybegynder
01. maj 2008 - 13:56 #13
jeg både henter og skriver data...

henter nogle kunder ind i et recordset - henter nogle data pr. kunde, og skriver derefter nogle ting ned i databasen...
Avatar billede bondester Nybegynder
01. maj 2008 - 22:52 #14
Det vigtige er at din "Set Conn = Server.CreateObject("ADODB.Connection")" er udenfor din DO-LOOP og kun dine Conn.Execute("SQL-Insert-koden") er indenfor...

Kan du ikke bare vise os den del af koden??
Avatar billede lifeweb Nybegynder
02. maj 2008 - 09:30 #15
hej bondester...

jeg kan desværre ikke fremvise koden - men jeg creater objektet allerførst - for derefter at køre de forskellige executes...
Avatar billede w13 Novice
02. maj 2008 - 09:59 #16
Husk også, at du aldrig skal bruge "SELECT *" medmindre du vitterligt vil hente _alle_ felterne. Hvis du kun skal bruge nogle af dem, _bør_ du skrive "SELECT felt1,felt2,felt3...", da det vil øge performance.
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
Kurser inden for grundlæggende programmering

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