Цитата:
Сообщение от Aristarh Dark
Код в студию.
|
Сразу скажу, форма через которую редактирую инфу, использую и для добавления, поэтому она называется frmAddClient
Код:
procedure TForm1.DBGrid1DblClick(Sender: TObject);
var uid: Integer;
modal: TModalResult;
begin
//Беру uid-пользователя, которого выбрали
uid := DBGrid1.DataSource.DataSet.Fields[0].AsInteger;
//Беру данные о нем из бд
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT * FROM tbl_names WHERE uid=:uid');
ADOQuery2.Parameters.ParamByName('uid').Value := uid;
ADOQuery2.Open;
//Создаю форму, через которую редактирую инфу о пользователе
frmAddClient := TfrmAddClient.Create(frmAddClient);
//Для теста беру только имя клиента...
frmAddClient.edtNameClient.Text := ADOQuery2.FieldByName('name').AsString;
modal := frmAddClient.ShowModal;
if modal = mrYes then begin
//Обновляю данные в бд
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('UPDATE tbl_names SET name=:name WHERE uid=:uid');
ADOQuery2.Parameters.ParamByName('uid').Value := uid;
ADOQuery2.Parameters.ParamByName('name').Value := frmAddClient.edtNameClient.Text;
try ADOQuery2.ExecSQL except
on E:EDatabaseError do
//Если исключительная ситуация, то сообщить о ней
ShowMessage(E.Message);
end;
// А вот тут как раз пытаюсь обновить инфу о пользователе в гриде.... :-((((
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Refresh;
end;
end;
Последние действия привязал к кнопке. Так вот, если раз 5 ткнуть по кнопке, то данные обновляются, а так ничего не обновляется.... :-((((
PS: О положении курсора пока не заморачиваюсь, но если покажете как его "сохранить", буду очень благодарен...