Thread Skript zum Durchlauf (5 answers)
Opened by Philip at 2010-07-08 11:24

Gast Philip
 2010-07-08 11:24
#139673 #139673
Hallo Leute,

ich bin leider fast ein absoluter Neulich in PERL, ich habe lediglich ein paar kleine Datenbankskripte geschrieben.
Jetzt muss ich ein kleines Programm von VBA in PERL umwandeln, damit ich es als Job auf unserem mysql Datenbankserver laufen lassen kann.

Unten habe ich den VBA Code stehen, auf die mySQL Datenbank kann ich zugreifen über DBI.

Bei VBA kann man relativ praktisch von einem zum nächsten Datensatz "hüpfen".
Im VBA Code prüfe ich einen Datensatz zum nächsten Datensatz, ist ein Fehler in der Berechnung enthalten, dann springe ich einen Datensatz zurück und ändere ihn...
Gibt es diese Möglichkeit auch bei PERL oder muss ich eventuell alles in Array schreiben und dort hin und her wechseln? Nachteil ist natürlich dann, dass ich immer ein SQL UPDATE bei jeder Änderung durchführen muss.

Den Code zwischendrin habe ich rausgenommen für die übersichtlichkeit, sind Datumsvergleiche und ein paar andere Abfragen die ich mir bestimmt zusammen googeln kann :-)

Bin für jede Hilfe dankbar!

Grüsse
Philip

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    DAO.DBEngine.SetOption dbMaxLocksPerFile, 1500000
Dim Conn As ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
Set Conn = CurrentProject.Connection
Set rst = New ADODB.Recordset
strSQL = "Select * from vicidial_agent_log_temp order by user, event_time"
rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

Dim Time, time_alt As Date
Dim summe, summe_alt, differenz, temp As Integer
Dim user_alt As String

Do Until rst.EOF
'Bei neuem Agent springe zum naechsten Datensatz
If .... Then
GoTo naechster_datensatz
End If

summe = rst!pause + rst!wait

If summe_alt ... Then
rst.MovePrevious
rst!gabcom_fehler = "AutoKorrektur"
'ein paar Änderungen ausführen
End If

naechster_datensatz:
'Werte übermitteln in Variable
user_alt = rst!user
time_alt = rst!event_time
summe_alt = rst!pause_sec + rst!wait_sec + rst!dispo_sec + rst!talk_sec

naechster_datensatz:
rst.MoveNext

Loop

rst.Close

Last edited: 2010-07-08 11:31:41 +0200 (CEST)

View full thread Skript zum Durchlauf