|
| SQL Server 2000: SPID ændrer sig ved kørse~ Fra : Thomas Sørensen |
Dato : 01-04-04 18:51 |
|
Jeg har problemer med, at server process ID (SPID) ændrer sig undervejs ved
eksekvering af flere forespørgsler under samme session (konstateret vha. SQL
Profiler). Når SPID ændrer sig, har jeg ikke adgang til de lokale temporære
tabeller, som er oprettet i en foregående forespørgsel under samme session,
hvilket viser sig ved, at der forekommer en fejlmeddelelse i VBA om, at den
temporære tabel ikke eksisterer. Sørger man for, at koden afvikles på trods
af fejl (On Error Resume Next) kan det konstateres, at de resterende
forespørgsler udføres vha. den oprindelige SPID og således uden problemer.
Sessionen etableres i form af en ADO connection fra VBA (Excel 2000).
Først og fremmest undrer det mig meget, at SPID overhovedet ændrer sig som
beskrevet, men det bliver endnu mere underligt af, at det kun er nogen gange
det sker. Hvis man ændrer inputparametrene til forespørgslerne, således at
der arbejdes med en relativt lille datamængde, er der typisk ingen
problemer. Ved større datamængder (som dog på ingen måde at være urimelige),
forekommer problemet konsekvent og i samme forespørgsel hver gang.
Den overordnede procedure er som følger:
1. Åbn en ADO DB connection
2. Eksekver en række stored procedures til udvælgelse af data og oprettelse
af en række temporære tabeller
3. Udfør x antal forespørgsler fra VBA rettet mod temporære tabeller
4. Luk ADO DB connection
Efter den positive respons på min tidligere henvendelse, håber jeg
optimistisk på, at der er nogen, som har en forklaring/løsning på problemet.
På forhånd tak
Thomas Hvalsø
t.s@tele2adsl.dk
| |
Thomas Sørensen (01-04-2004)
| Kommentar Fra : Thomas Sørensen |
Dato : 01-04-04 18:53 |
|
PS. Jeg har kontrolleret, at der ikke er tale om timeout ved eksekvering af
forespørgslen. CommandTimeout-egenskaben til ADO connection'en står som
standard til 30 sek. men fejlen forekommer allerede efter et par sekunder.
/Thomas Hvalsø
"Thomas Sørensen" <mr-whalesea@get2net.dk> skrev i en meddelelse
news:tDYac.829$8y1.633@news.get2net.dk...
> Jeg har problemer med, at server process ID (SPID) ændrer sig undervejs
ved
> eksekvering af flere forespørgsler under samme session (konstateret vha.
SQL
> Profiler). Når SPID ændrer sig, har jeg ikke adgang til de lokale
temporære
> tabeller, som er oprettet i en foregående forespørgsel under samme
session,
> hvilket viser sig ved, at der forekommer en fejlmeddelelse i VBA om, at
den
> temporære tabel ikke eksisterer. Sørger man for, at koden afvikles på
trods
> af fejl (On Error Resume Next) kan det konstateres, at de resterende
> forespørgsler udføres vha. den oprindelige SPID og således uden problemer.
> Sessionen etableres i form af en ADO connection fra VBA (Excel 2000).
>
> Først og fremmest undrer det mig meget, at SPID overhovedet ændrer sig som
> beskrevet, men det bliver endnu mere underligt af, at det kun er nogen
gange
> det sker. Hvis man ændrer inputparametrene til forespørgslerne, således at
> der arbejdes med en relativt lille datamængde, er der typisk ingen
> problemer. Ved større datamængder (som dog på ingen måde at være
urimelige),
> forekommer problemet konsekvent og i samme forespørgsel hver gang.
>
> Den overordnede procedure er som følger:
>
> 1. Åbn en ADO DB connection
> 2. Eksekver en række stored procedures til udvælgelse af data og
oprettelse
> af en række temporære tabeller
> 3. Udfør x antal forespørgsler fra VBA rettet mod temporære tabeller
> 4. Luk ADO DB connection
>
> Efter den positive respons på min tidligere henvendelse, håber jeg
> optimistisk på, at der er nogen, som har en forklaring/løsning på
problemet.
>
> På forhånd tak
>
> Thomas Hvalsø
> t.s@tele2adsl.dk
>
>
| |
|
|