Hallo
DP'ler,
ich bin wahrscheinlich nur betriebsblind, aber ich komme nicht weiter.
Nach der Umstellung einer Accessdatenbank auf Interbase habe ich im Datenmodul folgenden Code um die ID eines Datensatzes festzustellen:
Delphi-Quellcode:
// ----------------------------------------------------------------------------
// function GetPK(DS: TDSTitle): integer;
// ----------------------------------------------------------------------------
// Function..: Determine ID of the handover parameters specified data rate
// Parameter.: [DS] == actual dataset
// Accessible: public
function TdmTitles.GetPK(DS: TDSTitle): integer;
begin
//-- default return ---------------------------------------------------------
Result:= -1;
//if not OpenDB then exit;
with dbMain
do begin
if Connected
then Close;
DefaultTransaction:= trMain;
AllowStreamedConnected:= false;
IdleTimer:= 0;
SQLDialect:= 3;
DatabaseName:= '
192.168.20.208:C:\Eigene Dateien\titles.ib';
LoginPrompt := false;
Params.Text := '
user_name=DIRK' + #13#10 + '
password=macabi' + #13#10 + '
lc_ctype=ISO8859_1';
end;
with trMain
do begin
DefaultDatabase:= dbMain;
Params.Add('
write');
Params.Add('
consistency');
end;
with qrMain
do begin
Database:= dbMain;
Transaction:= trMain;
CachedUpdates:= false;
end;
with qrMain
do begin
//-- query prepare --------------------------------------------------------
SQL.Clear;
SQL.Add('
select * from MYTITLES where TITNAME = :TIT');
//-- query param prepare --------------------------------------------------
ParamByName('
TIT').Value:= DS.Title;
//-- query open -----------------------------------------------------------
try
Open;
if (RecordCount <> 0)
then
Result:= Fields.FieldByName('
ID').AsInteger;
Close;
except
on EDbengineError
do raise;
on EDatabaseError
do abort;
end;
{try}
end;
{with}
end;
Bei der Ausführung erhalte ich die Meldung "Fehler bei der Bereichsprüfung". Ich konnte aber den Code in der
IB-Console ausführen und erhielt auch das gewünschte Ergebnis.
Hat jemand einen Ansatzpunkt, wo ich den Fehler finden könnte.
Human are Human to make mistakes.