Показать сообщение отдельно
  #6  
Старый 18.03.2008, 19:28
acl acl вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 23
Репутация: 10
По умолчанию Собссно код

Цитата:
Сообщение от 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: О положении курсора пока не заморачиваюсь, но если покажете как его "сохранить", буду очень благодарен...
Ответить с цитированием