Einzelnen Beitrag anzeigen

Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#17
  Alt 24. Jan 2003, 14:19
Hi Hansa,
das liegt wahrscheinlich nicht am Unterschied zwischen FIBplus und IBX, ich wusste nur nicht, womit Du überhaupt arbeitest. Die Sache ist für Dich dann einfacher, die Queries haben automatische Parameter (siehe Object Inspector). Du brauchst den Parameter nicht zu definieren und kannst einfach zuweisen, z.B. mit
Query1.Params[0].Value := APar; Gibt es keinen Parameter, wird er angelegt.

Hier mal eine allgemeine Funktion, die ein Dataset mit einem Parameter refreshed (IBX und Interbase). Übergeben wird das Dataset Object, der Wert des Parameters, der ID Wert auf den der Datensatzzeiger positioniert werden soll, Konstante, die sagt, was mit der laufenden Transaction passieren soll:
Delphi-Quellcode:
procedure TDM.RequeryDS1(ADataset: TIBDataset; APar: variant; AID: longint; AType: integer);
begin
  with ADataset do try
    DisableControls;
    if Active then if State in [dsEdit, dsInsert] then Post;
    Close;
    if Transaction.InTransaction then
      case AType of
        c_Commit : Transaction.Commit;
        c_CommitRetain : Transaction.CommitRetaining;
        c_Rollback : Transaction.Rollback;
      end;
    if not Transaction.InTransaction then Transaction.StartTransaction;
    Params[0].Value := APar;
    Active := true;
    if AID > 0 then Locate(Fields[0].FieldName, AID, []);
  finally
    EnableControls;
  end;
end;
gruß, harrybo
Harry Boldt
  Mit Zitat antworten Zitat