A mi me parece mejor esto:
Código Delphi
[-]
with AQ_Edit do begin
If active then close;
SQL.Clear;
SQL.Add('Insert Into Horario (Hor_Tipo, Per_Nro,Hor_FechaHora)');
SQL.Add('Values (:Hor_Tipo, :Per_No, :Hor_FechaHora)');
Parameters.ParamByName('Hor_Tipo').Value := DTexto.fieldbyname('Tipo').AsString;
Parameters.ParamByName('Per_No').Value := DTexto.FieldByName('Ficha').asInteger; Parameters.ParamByName('Hor_FechaHora').Value := StrToDate('06-03-2008 17:25:00');
ParamByName('Hor_FechaHora').AsDateTime := DateTimePicker.DateTime;
Base.StartTransaction;
Try
ExecSQL
Base.Commit;
Except on EDBEngineError do begin
Base.RollBack;
raise;
end; end; end;