最初に私はDelphiを初めて使用するので、これは見過ごされている「ありふれた詳細」である可能性があります。【ごめんなさい】
Oracle 11g DB'Invalid Transaction Object'
に接続されたデータスナップサーバーを介してトランザクションを実行しようとすると、エラーが発生します。
システムの詳細と企業の事業計画により、トランザクションの処理にClientDataSetsを使用しないことを選択しました。代わりに、Snapサーバーを非常に汎用的にし、クエリを受信してネイティブタイプを返すことによってのみデータアクセスを処理しようとしています。
それがここで言われているので、私に合うものを与えているいくつかのサンプルコードがあります:
function TSnapMethods.TransUpdate: boolean;
var
dbx: TDBXTransaction;
params:TParams;
begin
SqlCon.Open;
dbx := SQLCon.DBXConnection.BeginTransaction(TDBXIsolations.ReadCommitted);
try
params:= TParams.Create(self);
with Params.AddParameter do
begin
name:= 'param';
DataType:= ftWideString;
ParamType:= ptInput;
asString:= 'Bugsville';
end;
with Params.AddParameter do
begin
name:= 'var';
DataType:= ftWideString;
ParamType:= ptInput;
asString:= 'ZZZTOP';
end;
sqlcon.Execute('Update Name set City=:param Where Abrv=:var',params);
SQLcon.CommitFreeAndNil(dbx);//Breaks here...
result:= true;
except
Sqlcon.RollbackFreeAndNil(dbx);//Breaks here also...
result:= false;
end;
end;