Код: Выделить всё
function GetID(ComboBox: TComboBox): integer;
begin
Result := -1;
if ComboBox.ItemIndex = -1 then Exit;
Result := Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);
end;
procedure LoadComboBox(ComboBox: TComboBox; Data: TIBSQL);
begin
with ComboBox, Data do
begin
Transaction.StartTransaction;
Clear;
try
ExecQuery;
if RecordCount > 0 then
repeat
Items.AddObject(Fields[1].AsString, TObject(Fields[0].asInteger));
Next;
until Eof;
Close;
ItemIndex := 0;
Transaction.Commit;
except
Transaction.Rollback;
end;
end;
end;
procedure TFSotrudnik.BitBtn3Click(Sender: TObject);
begin
Close;
end;
procedure TFSotrudnik.FormCreate(Sender: TObject);
begin
GET_S.SQL.Text:='Select ID, NAME from SOTRUDNIK';
LoadComboBox(ComboBox3,GET_S);
GET_S.SQL.Text:='Select ID, NAME from FILIAL where ID=:Res1';
//Проблема
GET_S.ParamByName(Res1).AsString:=IntToStr(GetID(ComboBox3));
LoadComboBox(ComboBox1,GET_S);
end;
end.
GET_S.ParamByName(Res1).AsString:=IntToStr(GetID(ComboBox3));
Все компилируется на УРА, но при запуске программы пишет Transaction not active
Если передаю значение вот так GET_S.SQL.Text:='Select ID, NAME from FILIAL where ID='+IntToStr(GetID(ComboBox3)); То все работет без проблем. Что я делаю не так в первом случае ????