hallo,
ich habe bisher nur mit desktop-datenbanken wie paradox, access und konsorten gearbeitet. c/s ist völliges neuland. derzeit habe ich begonnen eine kleine datenbank mit den ibx kompos zu schreiben. neue daten fügen ich über einen extra form ein (wird mit showmodal aufgerufen). wenn nun ein user bereits einen datensatz editiert (wird auch über das formular zum einfügen getätigt), und ein anderer user den selben datensatz editieren möchte, soll eine mdleung kommen "datensatz gesperrt" in der art. der code sieht folgendermaßen aus:
<pre>
if InsertRecForm.ShowModal = mrOK then
begin
with StoredProc3 do
begin
Prepare;
Params.ParamByName('NAME_IN').AsString := T1;
Params.ParamByName('VNAME_IN').AsString := T2;
Params.ParamByName('TEL_IN').AsString := T3;
Params.ParamByName('PAR_NAME').AsString := InsertRecForm.Edit1.Text;
Params.ParamByName('PAR_VNAME').AsString := InsertRecForm.Edit2.Text;
Params.ParamByName('PAR_TEL').AsString := InsertRecForm.Edit3.Text;
ExecProc;
end;
RefButtonClick(Sender); //Automatisches aktualisieren.
end;
Database1.Commit;
except //Wenn Datensatz von anderem User bearbeitet wird.
Database1.Rollback;
MessageDlg('Satz gesperrt!', mtWarning, [mbOK], 0);
end;
</pre>
als ich das selbe mit den normelen kompos (über die bde) gemacht habe funktionierte es, seit ibx kommt keine meldung, es wird also offensichtlich keine exception ausgelöst. wer kann mir sagen, wie ich sowas realisieren kann??
mfg
ake
ich habe bisher nur mit desktop-datenbanken wie paradox, access und konsorten gearbeitet. c/s ist völliges neuland. derzeit habe ich begonnen eine kleine datenbank mit den ibx kompos zu schreiben. neue daten fügen ich über einen extra form ein (wird mit showmodal aufgerufen). wenn nun ein user bereits einen datensatz editiert (wird auch über das formular zum einfügen getätigt), und ein anderer user den selben datensatz editieren möchte, soll eine mdleung kommen "datensatz gesperrt" in der art. der code sieht folgendermaßen aus:
<pre>
if InsertRecForm.ShowModal = mrOK then
begin
with StoredProc3 do
begin
Prepare;
Params.ParamByName('NAME_IN').AsString := T1;
Params.ParamByName('VNAME_IN').AsString := T2;
Params.ParamByName('TEL_IN').AsString := T3;
Params.ParamByName('PAR_NAME').AsString := InsertRecForm.Edit1.Text;
Params.ParamByName('PAR_VNAME').AsString := InsertRecForm.Edit2.Text;
Params.ParamByName('PAR_TEL').AsString := InsertRecForm.Edit3.Text;
ExecProc;
end;
RefButtonClick(Sender); //Automatisches aktualisieren.
end;
Database1.Commit;
except //Wenn Datensatz von anderem User bearbeitet wird.
Database1.Rollback;
MessageDlg('Satz gesperrt!', mtWarning, [mbOK], 0);
end;
</pre>
als ich das selbe mit den normelen kompos (über die bde) gemacht habe funktionierte es, seit ibx kommt keine meldung, es wird also offensichtlich keine exception ausgelöst. wer kann mir sagen, wie ich sowas realisieren kann??
mfg
ake
Comment