Hur gör jag för att veta hur lång tid en SQL-process kommer att ha. Om man har en jättestor kraftfull SQL-sats som kommer att ta lite tid, skulle man vilja visa det i progressbar. För det första, vilken databashanterare gäller det? OK, Access är inte precis min specialitet, men jag tror som sagt inte det finns något inbyggt sätt att göra detta i någon DBMS. Men kanske någon Access-specialist kan säga mer.. Det blir svårt! Det är ingen sida, det är ett program. Jag får väl köra med ett litet fönster som visar en animation och en text som säger vad som händer. Hej! Ursäkta det fattades ett par rader.SQL-process
/JörgenSv: SQL-process
Generellt sett tror jag inte det finns någon som har stöd för något sådant, det beror ju väldigt mycket på läget på servern just när frågan körs, andra processer och frågor som tar resurser etc. I SQL Server kan man i Query Analyzer titta på en Estimated query plan, men den visar inte några exakta tider för hur lång tid som olika delar kommer att ta, utan bara vilka resurser som beräknas användas. Jag vet dock inte om man kan, och isf hur, visa denna estimering programmatiskt.Sv: SQL-process
Sv: SQL-process
Vad du dæremot kan gøra ær att visa en "loading" text medans sidan håller på att hæmtas från servern. Det ær inte någon progressbar eftersom du aldrig vet nær sidan ær færdig, men så længe som sidan laddas så kan man visa en lite text som sæger att sidan laddas.
Du kan ladda ner en sådan funktion från min sida. Http://tassadar.gladh.nu/page_download.asp
- MSv: SQL-process
Tack för hjälpen
/JörgenSv: SQL-process
Jag har gjort någonting i stil med vad du förväntar dig, stämmer väll inte på millisekunder men...
Lägg till en progressbar.
i början av koden:
ProgressBar1.min = 1
Jag har det så att progressbaren är osynlig i flesta fall, men blir synlig när jag kör SQL:en
ProgressBar1.Visible = True
Sen din SQL
därefter
Con.CursorLocation = adUseClient(om inte din connection heter con så döp om detta)
kör SQL...
Set Rst = Con.Execute(SQL)
ProgressBar1.Max = Rst.RecordCount
Sist i koden:
ProgressBar1.Visible = False
Ungefär så har jag det, och jag känner mig nöjd med det.Sv: SQL-process
<code>
Dim k As Long
k = 1
'Under SQL:en
ProgressBar1.Max = Rst.RecordCount
'innan loopen
ProgressBar1.Value = k
'efer loopen
k = k + 1
</code>
Nu bör det fixa isig