Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi zeos und mehere sql befehle auf einen rutsch (https://www.delphipraxis.net/28591-zeos-und-mehere-sql-befehle-auf-einen-rutsch.html)

MadMason 26. Aug 2004 17:30


zeos und mehere sql befehle auf einen rutsch
 
ich hab eine zeos sqlquery komponente. in query.sql lade ich eine datei mit mehreren sql befeheln. wenn ich die aber ausführen will kommt es zu einer fehlermeldung das mehr als ein sqlbefehl in der query steht. wenn ich die sql befehle alle einzeln hineinschreibe und ausführe klappt es, aber das ja ziemlich umständlich

gibts ne möglichkeit doch mehrer befehle auf einen rutsch zu erledigen?

Robert_G 26. Aug 2004 18:12

Re: zeos und mehere sql befehle auf einen rutsch
 
Zitat:

Zitat von MadMason
gibts ne möglichkeit doch mehrer befehle auf einen rutsch zu erledigen?

Ich denke nicht, dass die Zeos da eine Art Script-Kompo dabei haben.
Aber wie auch immer, es ist fast nie "auf einem Rutsch". Es läuft (fast) immer auf einzeln abgesetzte Statements hinaus. (Das fast gilt für Bulk DML, das aber nur die wenigsten DBs intern wirklich als ein Statement behandeln)
Deshalb kannst du sie genausogut selbst auftrennen und nacheinander absetzen.

mischerr 26. Aug 2004 21:55

Re: zeos und mehere sql befehle auf einen rutsch
 
Es gibt aber den Zeos "ZSQLProcessor"! Hab's noch nicht selbst probiert, aber es müsste darüber gehen.
Bislang hab ich (Zeos+FB1.5 embedded) solche SQL-Scripts über eine Datei eingelesen und dann nach dem Motto ...while not eof(f) do readln(f, sql)... zeilenweise, die SQL-Befehle waren auch zeilenweise, abgearbeitet.
Hat bislang den Zweck einwandfrei erfüllt und war IMHO auch nicht besonders umständlich.

trifid 6. Dez 2004 12:44

Re: zeos und mehere sql befehle auf einen rutsch
 
gibt es mittlerweile eine Lösung dafür :?:
mit ZSQLProcessor beokomme ich MadMason Fehler-Dialog - verwende ZEOSLIB 6.1.5-stable

Hansa 6. Dez 2004 12:58

Re: zeos und mehere sql befehle auf einen rutsch
 
Mischerr hat Dir die Lösung gesagt.

Stevie 6. Dez 2004 13:10

Re: zeos und mehere sql befehle auf einen rutsch
 
Welche Datenbank? Eventuell habt ihr keine/falsche Delimiter?
Wie sieht die Script-Datei aus?

Mit TZSQLProcessor funktioniert das eigentlich...

Domo Sokrat 6. Dez 2004 13:16

Re: zeos und mehere sql befehle auf einen rutsch
 
Hi MadMason,

das Ganze müsste auch so funktionieren (Auszug aus meinem ZEOS-Tut):

Zitat:

Mehrere Statements in den Sql-Properties von TZQuery und TZUpdateSQL

Die Komponenten TZQuery und TZUpdateSql unterstützen intern die Abarbeitung mehrerer SQL-Statements. So ist es zum Beispiel möglich im SQL-Property mehrere Befehle (auch mit Parametern) für die Abarbeitung zu hinterlegen. Diese müssen aber durch Semikolon getrennt sein. Hier ein Beispiel:

Delphi-Quellcode:
   :
   With Query do Begin
      Sql.Clear;
      Sql.Add('DELETE FROM table1;');
      Sql.Add('INSERT INTO table1 VALUES (:Val1, :Val2);');
      Sql.Add('INSERT INTO table2 VALUES (:Val3, :Val2);');
      Sql.Add('UPDATE     table3 SET field1 = :Val4;');
      Params.ParamByName('Val1').AsInteger := 123;
      :
      ExecSql;
   End;
   :
Alle Statements werden der Reihe nach abgearbeitet. Es ist ebenso möglich, mehrere Statements auf diese Weise in TZUpdateSql-Objekten zusammenzufassen, um so z. B. mehrere Tabellen zu aktualisieren.

trifid 6. Dez 2004 14:13

Re: zeos und mehere sql befehle auf einen rutsch
 
oh, ich habe vergessen zu sagen, dass ich
unter zeoslib\examples das Script msqsql.sql verwendet habe ...
und dann bekomme ich diesen Fehler :!:
verwende MS SQL Server

Delphi-Quellcode:
   ZSQLProcessor1.LoadFromFile ('C:\Delphi\ZeosLib\examples\msqsql.sql');
   ZSQLProcessor1.Execute;

mschaefer 6. Dez 2004 14:58

Re: zeos und mehere sql befehle auf einen rutsch
 
Moin, moin,

habe da leider kein Beispiel dafür, aber ich meine, das ExecSql die interne
Script-Komponente übergeht und dass daher der Mehrfach-SQL-Befehl von Domo Sokra
funktioniert. Ein active auf true würde aber die Fehlermeldung geben.

Grüße // Martin

trifid 6. Dez 2004 15:04

Re: zeos und mehere sql befehle auf einen rutsch
 
das würde ja dann so aussehen
Delphi-Quellcode:
   ZQuery.SQL.Clear;
   ZQuery.SQL.LoadFromFile ('msqsql.sql');
   
   ZQuery.ExecSQL;
und dies führt auch zu einen Fehler.

wie gesagt, ich möchte das komplette Script auf einmal ausführen


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz