OK, hier ist erstmal der Code einer Stored Procedure und der Aufruf aus Delphi, hoffe das bringt euch was, aber ich bin auch für Ideen offen, mit denen ich generell Deadlocks vermeiden kann
.
SQL-Code:
begin
Select count(*) from t_swpoolstr into kcount;
update t_auftraege set
Kundenname = 'Test1',
Auftragsnr = kcount,
Liefertermin = '28.03.2008 17:22:30',
Datumuhrzeit = '27.03.2008 18:30:22',
Status = 1
where ID = 380;
update t_swpoolstr set
PositionenID = kcount,
Poolstr = 'TestString 1',
Status = 1
where ID = 118.417;
suspend;
end
Die 2. SP sieht ziemlich genauso aus, nur dass die angesprochene Tabelle immer genau die andere ist und hier der Versprochene Aufruf:
Delphi-Quellcode:
procedure TForm1.btn_execspClick(Sender: TObject);
begin
If DataBase1.InTransaction = False Then DataBase1.StartTransaction;
Try
Begin
DataSource1.DataSet:= StoredProc1;
StoredProc1.StoredProcName:= ed_storedp.Text;
StoredProc1.ExecProc;
Database1.Commit;
end;
Except
Database1.Rollback;
ShowMessage('Ausführung nicht möglich, Fehler !');
Timer2.Enabled:= false;
End;
end;