Thema: Delphi Querystring präparieren

Einzelnen Beitrag anzeigen

EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#19

AW: Querystring präparieren

  Alt 18. Dez 2020, 06:51
Guten Morgähn,

Cody ich kenne die Komponenten nicht, jedoch sind mir diese Limitationen auch nicht bekannt. Ich würde mich Frickler anschließen auch für FB2.5. Die einzige Besonderheit, welche es zu beachten gilt, wenn das SQL Länger als High(Word) wird ist: Es darf kein #0 byte enthalten sein.

Anhand deines Beispiels aus dem Link: Query.Params[0].AsBooleans[1] := True; könntest du evtl. mal ein Beispiel-Query zeigen, wie das anzuwenden ist?
Nur mal so dahin geschmissen ohne Sinn und Zweck und ungetestet:
Code:
unit ZQueryBatchDML;

interface

uses ZConnection, ZDataSet;

procedure ExecuteQueryBatchInsert;

implementation

uses SysUtils;

procedure ExecuteQueryBatchInsert;
var Connection: TZConnection;
    Query: TZQuery;
    DMLidx: Integer;
    Succeeded: Boolean;
begin
  Connection := TZConnection.Create(nil);
  {assign everything to connect}
  Query := TZQuery.Create(nil);
  Query.Connection := Connection;
  Connection.Connect;
  try
    Connection.ExecuteDirect('CREATE TABLE DML_INSERT_DEMO('+
      'ID INTEGER NOT NULL,'+
      'NUM VARCHAR(32),'+
      'INSERT_TIMESTAMP DATETIME)');
    Connection.StartTransaction;
    Succeeded := False;
    try
      Query.SQL.Text := 'INSERT INTO DML_INSERT_DEMO VALUES (:ID,:NUM,:INSERT_TIMESTAMP)';
      Query.Params.BatchDMLCount := 10;
      for DMLidx := 0 to 9 do begin
        Query.Params[0].AsIntegers[DMLidx] := DMLidx +1;
        Query.Params[1].AsStrings[DMLidx] := IntToStr(DMLidx);
        Query.Params[2].AsDateTimes[DMLidx] := now;
      end;
      Query.ExecSQL;
      Assert(Query.RowsAffected = 10);
      Succeeded := True;
    finally
      if Succeeded
      then Connection.Commit
      else Connection.Rollback;
    end;
  finally
    Query.Free;
    Connection.Free;
  end;
end;

end.
Ist das nun verständlicher? Du kannst auch eine TZTransaction benutzen, wenn benötigt..

Kannst du mit ZEOS eigentlich schon die aktuelle FB 4.0 konnektieren?
Na klar, ich habe auch die neue (Seit FB3) OO_API eingebaut und auf den Stand der letzten FB4 Beta gebracht:
https://fossies.org/linux/Firebird/d...ng_OO_API.html

Geändert von EgonHugeist (18. Dez 2020 um 10:18 Uhr) Grund: Code highlighting
  Mit Zitat antworten Zitat