-> Hier kostenlos registrieren
Ich habe ein Problem hiermit:
soweit funktioniert das ganze ja, allerdings wenn ich SmartTags("Micobox\MaxWerte") und SmartTags("Micobox\Zeilenanzahl") auf einen Wert von über hundert setzte bekomme ich die Meldungen
sowie
ich meine mich zu erinnern das bei einer Änderung in einem Array in einen Script, jedesmal das ganze Array bei jeder Änderung übertragen wird.
Da ich 200 Werte zu ändern habe und es sich um DINT-Typen handelt, sind das 200x800Byte die er versucht in den DB zu schreiben.
Mein Gedanke war dann, dass ich die Änderung in einem Scriptarray mache und anschließend das ganze Scriptarray in das DB-Array kopiere.
Nur wie
Am besten fände ich es wenn ich das DB-Array erst auf Anforderung aktuallisiere. Allerdings funktioniert
ja nicht in Flexible.
Code:
Dim dateistream, fsobject, text_stream, il, temp, fs, i, array_nr, zeile(200), zeileninhalt
Set fsobject = CreateObject("Scripting.FileSystemObject")
HmiRuntime.Screens("uebergabe").ScreenItems("eieruhr").Visible = True
Set dateistream = fsobject.GetFile("D:\1.csv")
Set text_stream = dateistream.OpenAsTextStream(1, -2)
For il = 1 To SmartTags("Micobox\Index")
If text_stream.AtEndOfStream = True Then Exit For
temp = text_stream.ReadLine
Next
For i = 1 To SmartTags("Micobox\Zeilenanzahl")
If text_stream.AtEndOfStream = True Then Exit For
zeile(i) = text_stream.ReadLine
Next
If i > SmartTags("Micobox\MaxWerte") Then
i = SmartTags("Micobox\MaxWerte")
End If
text_stream.Close
For array_nr = 1 To (i-1)
zeileninhalt = Split(zeile(array_nr),";",-1,1)
SmartTags("Micobox\Auftrag1_RCV.Auftragsnummern") (array_nr) = zeileninhalt(0)
Next
Set dateistream = Nothing
Set fs = Nothing
Set fsobject = Nothing
HmiRuntime.Screens("uebergabe").ScreenItems("eieruhr").Visible = False
soweit funktioniert das ganze ja, allerdings wenn ich SmartTags("Micobox\MaxWerte") und SmartTags("Micobox\Zeilenanzahl") auf einen Wert von über hundert setzte bekomme ich die Meldungen
Fehler 'Overflow: 'array_nr" in Skript <Var_uebergeben> in Zeile 37
sowie
Variable Microbox/Auftrag1_RCV.Auftragsnummern: Überlast, Werte gehen verloren
ich meine mich zu erinnern das bei einer Änderung in einem Array in einen Script, jedesmal das ganze Array bei jeder Änderung übertragen wird.
Da ich 200 Werte zu ändern habe und es sich um DINT-Typen handelt, sind das 200x800Byte die er versucht in den DB zu schreiben.
Mein Gedanke war dann, dass ich die Änderung in einem Scriptarray mache und anschließend das ganze Scriptarray in das DB-Array kopiere.
Nur wie
Am besten fände ich es wenn ich das DB-Array erst auf Anforderung aktuallisiere. Allerdings funktioniert
Code:
UpdateTag