Jag har ett problem med att när jag vill radera ur en tabell så slår truncatelog-filen i taket. Jag kan inte ändra storlek eller inaktivera denna truncatelog-fil som är bestämd till 5Mb av en annan applikation. Jag använder ADO 3.6 mot en MsSQL-server. För att komma runt detta har jag löst det på följande vis: Varför loopa? Problemet är när jag tar med allt så handlar det om ca 300000 poster vilket i sin tur gör att Truncatelog-filen växer till ca 200mb. men den är begränsad till 5mb i en annan applikation som jag ej kan påverka. Därför måste jag ta bort lite i taget... Skapa en schedule händelse i severn som körs tex varje natt och skriv en SP som tar bort den gamla datan åt dig.VB & SQL
...
For h = 0 To 23 Step 1
strSQL = "DELETE FROM trdVindriktning WHERE TS < '" & DatumGrans & " " & h & ":00:00'"
'Verkställ SQL-strängen
con.Execute (strSQL)
Next h
...
Dvs jag delar upp en SQL-fråga i flera små frågor och raderar lite i taget.
Kan man inte istället radera tex 1000 poster i taget så länge det finns något kvar att radera enligt vilkoret? Något sånt här hade jag tänkt mig:
1. Kolla i databasen om det finns något som är äldre än 5 dagar.
2. Om det finns det så ta bort 1000 poster.
3. Kolla i databasen igen om det finns några poster som är äldre än 5 dagar.
4. Om det finns det så ta då bort 1000 poster.
5. Sen håller man på sä här tills allt som är äldre än 5 dagar är borttaget.
Någon som har en lösning på detta beskymmer?Sv: VB & SQL
Det är väl bara att skriva sql satsen direkt??
strSQL = "DELETE FROM trdVindriktning WHERE TS < '" & DatumGrans & " " & h & ":00:00'"
'Verkställ SQL-strängen
con.Execute (strSQL)Sv: VB & SQL
Sv: VB & SQL
//UJ