Moin, ich hoffe es kann jemand helfen, da ich einen recht ungewöhnlichen Fall für Javascript habe. Ich habe folgendes Problem. Ich habe ein Datenverwaltungsprogramm, welches mir eine offene Verbindung zur Datenbank herstellt. Ich kann meine Scripte so schreiben, dass ich, durch einen SQL-Query, eine bereits vorselektierte Datenmenge an mein Script übergeben bekomme. Anschließend wird diese Datenmenge verarbeitet durch eigene Funktionen, über die ich vom Entwickler keine Informationen erhalte ohne einen haufen Geld zu bezahlen, welches ich nicht habe. Das sieht ungefähr so aus.
Für mein Ziel will ich die Daten weiter so ähnlich zu verarbeiten, weswegen ich deren Funktionen eigentlich nicht vollständig verstehen muss. Ich möchte aber ein Script Nachts automatisch auf meine Datenmenge ausführen, dafür gibt es in dem Programm auch einen Planer, alles kein Problem. Ich weiß aber nicht wie ich ein Programm schreibe, was über diese offene Verbindung zur Datenbank eine Selektion ausführt, da die Scripte die ich schreibe von der Logik welche Daten ich verabreite abgeschaut ist und sich eben auf eine übergebene Datenmenge beschränkt.
Ich vermute es wird eben ein Command-Objekt (ds_vt) zum Abfragen einer Datenbank und zum Zurückgeben von Datensätzen in einem Recordset-Objekt verwendet. Also muss ich doch nur herausfinden, wie ich mein eigenes Recordset-Objekt auf meine Datenbank erzeuge oder nicht?
Ich freue mich über jede Antwort, da ich Ratlos bin.
Beste Grüße aus HH
Florian
Javascript:
function ProcessDataSet(Dataset) {
var ds_vt = Runtime.provideDataSet();
var notAllowed = ' -/:,._+#!%&()=<>*';
Dataset.First();
while (!Dataset.Eof) {
if (Dataset.FindField('CHECKED').AsInteger == 1) {
ds_vt.commandtext = "SELECT * FROM VERTRAG WHERE AMSIDNR = '" + Dataset.FindField('AMSID').AsString + "'";
ds_vt.active = true;
ds_vt.Edit;
var vnr = ds_vt.FindField('VNR_DRUCK').AsString;
var vnr_norm = vnr;
for (i = 0; i < notAllowed.length; i++) {
do {
vnr_norm = vnr_norm.replace(notAllowed.substr(i, 1), '');
} while (vnr_norm.indexOf(notAllowed.substr(i, 1)) > -1);
}
ds_vt.FindField('VNR').AsString = vnr;
ds_vt.FindField('VNR_NORM').AsString = vnr_norm;
ds_vt.Post;
ds_vt.Applyupdates(0);
ds_vt.active = false;
}
counter++;
Dataset.Next;
}
Runtime.MsgBox('Fertig');
}
Ich vermute es wird eben ein Command-Objekt (ds_vt) zum Abfragen einer Datenbank und zum Zurückgeben von Datensätzen in einem Recordset-Objekt verwendet. Also muss ich doch nur herausfinden, wie ich mein eigenes Recordset-Objekt auf meine Datenbank erzeuge oder nicht?
Ich freue mich über jede Antwort, da ich Ratlos bin.
Beste Grüße aus HH
Florian
Zuletzt bearbeitet von einem Moderator: