script ausführen mit TZSQLProcessor

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

script ausführen mit TZSQLProcessor

Beitrag von ralli »

Ich plane, einen fbmaker für die Community zu erstellen, ein Lernprogramm für Firebird und auch für die grundlegenden SQL Befehle.
Ich habe dafür die zeoslib Komponenten installiert und unterwerfe sie gerade einem ausführlichen Test. Ich setze dafür den firebird Superserver 2.1 unter Windows XP ein. Alles funktioniert wunderbar. Jetzt aber will ich ein umfangreicheres SQL Script mit der Komponente TZSQLProcessor ausführen. Bei Scripten mit wenig Datensätzen und Text funktioniert das auch. Ich habe aber ein SQL Script mit 148 Zeilen Inserts und viel Text aus mails. Und schon schmiert das Programm ab. Hat jemand schon ähnliche Erfahrungen gemacht oder missbrauche ich diese Komponente für den falschen Zweck ?

Code: Alles auswählen

 
 // Script ausführen:
 Datenbank.Disconnect;
 Datenbank.Database := 'G:\db\firebird\probe\briefe.fdb';
 Datenbank.Protocol := 'firebird-2.0';
 Datenbank.Properties.Clear;
 Datenbank.Properties.Add('user=sysdba');
 Datenbank.Properties.Add('password=masterkey');
 Datenbank.Properties.Add('codepage=utf8');
 Datenbank.Connect;
 sqlScript.Script.Clear;
 sqlScript.LoadFromFile('G:\db\firebird\probe\briefe.sql');
 sqlScript.Execute;
  
INSERT INTO mails (Datum, Absender, Betreff, Inhalt) VALUES ('xxx', xxx','xxx','xxx');

Mit ibexpert funktioniert es einwandfrei.
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Re: script ausführen mit TZSQLProcessor

Beitrag von ralli »

Und so funktioniert es:

Code: Alles auswählen

 
// Script ausführen:
Datenbank.Disconnect;
Datenbank.Database := 'G:\db\firebird\probe\briefe.fdb';
Datenbank.Protocol := 'firebird-2.0';
Datenbank.Properties.Clear;
Datenbank.Properties.Add('user=sysdba');
Datenbank.Properties.Add('password=masterkey');
Datenbank.Properties.Add('codepage=iso8859_1');
Datenbank.Connect;
Datenbank.StartTransaction;
Try
sqlScript.Script.Clear;
sqlScript.LoadFromFile('G:\db\firebird\probe\mails.sql');
sqlScript.Execute;
Datenbank.Commit;
Except
on e: exception do begin
synmemo1.Lines.Add('error: ' + e.Message);
synmemo1.Lines.Add(' rollback ausgeführt');
Datenbank.Rollback;
synmemo1.Lines.Add(' rollback erfolgreich');
end;
 
Es war der falsche Zeichensatz. Obwohl die Datenbank mit der Zeos Kompo Zconnection und utf-8 angelegt war, mochte er jetzt nur iso8859-1. Verstehe, wer es wolle, aber Hauptsache, et lüppt.
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2

Antworten