Dts mit VBScript - Grundlagen

27/06/2008 - 14:02 von Andreas Jändl | Report spam
Hallo NG,

ich möchte mit SQLS2k einen DTS automatisch ablaufen lassen, der
verschiedene Tabellen importiert. Danach müssen die Tabellen noch mit einer
Schleife bearbeitet werden. Dafür habe ich bisher in VBA die unten folgende
Prozedur manuell verwendet. Kann ich die Prozedur jetzt als
ActiveScript-Task im DTS nach dem Datenimport ablaufen lassen? Und wenn,
wie? Und ist das zu empfehlen? Könnte man das auch mit T-SQL machen, kann
das Recordsets erstellen und durchlaufen?

Vielen Dank im voraus und herzliche Grüße, Andreas

sql = " SELECT Id_temp_preis_TSM_wett, Id_Station, Id_Warengru, DATUMZEIT,
Neu"
sql = sql & " FROM dbo.s_temp_preis_TSM_wett"
sql = sql & " WHERE (Neu = 1)"
rs(1).Open sql, cnn, adOpenStatic
If rs(1).RecordCount > 0 Then

Do While Not rs(1).EOF

intIdTemp = rs(1)!id_temp_preis_tsm_wett
intIdStation = rs(1)!Id_Station
intidwarengru = rs(1)!Id_Warengru
dtePreisWett = rs(1)!Datumzeit

sql = " SELECT TOP 5 Id_dat_preis_TSM, datumzeit, datum"
sql = sql & " FROM dbo.s_dat_preis_TSM"
sql = sql & " WHERE (DATUMZEIT <= CONVERT(DATETIME,"
sql = sql & " '" & Format(dtePreisWett, "yyyy-mm-dd hh:mm:ss") &
"', 102))"
sql = sql & " AND (Id_Warengru = " & intidwarengru & ") AND"
sql = sql & " (Id_Station = " & intIdStation & ")"
sql = sql & " ORDER BY DATUMZEIT DESC"
Debug.Print sql
'Set rs(2) = New ADODB.Recordset
rs(2).Open sql, cnn, adOpenStatic
If rs(2).RecordCount > 0 Then
intIdDat = rs(2)!Id_Dat_Preis_TSM
dtePreis = rs(2)!Datumzeit
strDatumPreis = rs(2)!datum
End If
rs(2).Close
Set rs(2) = Nothing

strdtePreis = fkt_DateTimeForSP(dtePreis)

sql = " UPDATE dbo.s_temp_preis_tsm_wett SET id_dat_preis_tsm =
" & intIdDat
sql = sql & " , datumzeit_dat_preis_TSM = '" & dtePreis & "'"
sql = sql & " , datum_dat_preis_TSM = '" & strDatumPreis & "'"
sql = sql & " WHERE id_temp_preis_tsm_wett = " & intIdTemp
Debug.Print sql
cnn.Execute sql

rs(1).MoveNext
Loop

End If

rs(1).Close
Set rs(1) = Nothing
 

Lesen sie die antworten

#1 Christoph Ingenhaag
27/06/2008 - 14:44 | Warnen spam
Hallo Andreas,

mir sieht das so aus, als könnte man das mit einem update statement ausführen.
Poste doch mal die Skripte für die beteiligten Tabellen, ein paar Testdaten
und schreib mal, was für ein Ergebnis du unter welchen Bedingungen du
erwartest...

Vielleicht hat aber auch jemand anders Lust, deinen Code auseinander zu
fuddeln ;-)

Vg
Christoph

Ähnliche fragen