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