![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет!
Всё воюю с указатель в DataSet'е. Нужно чтоб после изменения он оставался на выбранной записи в DBGrid'е, но в текущем примере он почему-то после выполнения процедуры перемещается на самую последнюю запись в таблице. В чём проблема? Код:
procedure TEdit_Office.add_officeClick(Sender: TObject);
var
curs: integer;
begin
try
with DataModule1.IBQuery2 do
begin
SQL.Text:='UPDATE office SET o_name = :o_name WHERE o_id = :o_id';
ParamByName ('o_name').AsString:=Edit1.Text;
ParamByName ('o_id').Value := DataModule1.office.FieldByName('o_id').AsString;
DataModule1.DataSource1.DataSet.RecNo:= curs;
curs:= DataModule1.office.FieldByName('o_id').AsInteger;
Transaction.StartTransaction;
ExecSQL;
Transaction.Commit;
Transaction.Active:=false;
end;
DataModule1.OFFICE.Close;
DataModule1.OFFICE.Open;
DataModule1.DataSource1.DataSet.Locate('o_id', IntToStr (curs), []);
except
on E: Exception do
begin
if DataModule1.IBQuery2.Active then
DataModule1.IBQuery2.Transaction.Rollback;
Application.MessageBox(PChar(E.Message), 'Îøèáêà', MB_ICONERROR);
end;
end;
Edit_Office.close;
end; |
|
#2
|
||||
|
||||
|
Цитата:
Да и дальше у тебя какая-то путаница - сохраняешь в curs значение из "DataModule1.office", а восстанавливаешь из "DataModule1.DataSource1.DataSet". Если это одно и то же может лучше прийти к одному варианту, чтобы самому же потом и не путаться? |
|
#3
|
|||
|
|||
|
Цитата:
Да вот именно, что я тут уже намудрил... Может пример покажешь? |
|
#4
|
||||
|
||||
|
Цитата:
Ну а о замене "DataModule1.office" на "DataModule1.DataSource1.DataSet" (или наоборот) это только в том случае если это у тебя действительно одно и то же, да и то необязательно - только для большей понятности кода. |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
sAVe (08.12.2013)
| ||
|
#5
|
|||
|
|||
|
Цитата:
Спасибо, разобрался! |