Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.04.2010, 13:53
kmvteam kmvteam вне форума
Прохожий
 
Регистрация: 28.04.2010
Сообщения: 1
Репутация: 10
По умолчанию Ado+access проблема обновления dbGrid

Добрый день.
Имеется главная форма с DbGrid, datasource, adotable
К DBgrid подключена таблица в базе access.
По кнопке открывается вторая форма на которой можно добавить данные в таблицу на первой форме. Данные добавляются но возникла проблема как обновить DbGrid на первой форме.

На первой форме есть кнопка с кодом:
adoTAble1.Close;
adoTAble1.open;
При её использование все обновляется

При попытке сделать тоже самое на второй форме, ничего не выходит(в uses форму прописал).
Form1.adoTAble1.Close;
Form1.adoTAble1.Open;
То есть вторая форма добавляет запись и потом закрывается. И на первой форме ничего не происходит.
Если на втрой форме вынести
на отдельную кнопку
Form1.adoTAble1.Close;
Form1.adoTAble1.Open;
То тоже работает. как занести в одну кнопку и чтобы работалою
Цитата:
Цитата:
var
com:string;
i:integer;
begin
adoquery1.close;
adoquery1.sql.text:='insert into Картотека(Код_сотрудника,Подразделе ние,Должность,Фамилия,Имя,Отчество, Пол) values (:Код_сотрудника,:Подразделение,:До лжность,:Фамилия,:Имя, :Отчество,:Пол)';
adoquery1.Parameters.ParamByName('Ф амилия').value:=edit1.Text;
adoquery1.Parameters.ParamByName('И мя').value:= edit2.Text;
adoquery1.Parameters.ParamByName('О тчество').value:=edit3.Text;
adoquery1.Parameters.ParamByName('П ол').value:=combobox1.Text;
adoquery1.Parameters.ParamByName('К од_сотрудника').value:= edit5.Text;
adoquery1.Parameters.ParamByName('П одразделение').value:=combobox2.Tex t;
adoquery1.Parameters.ParamByName('Д олжность').value:=edit4.Text;
adoquery1.execSQL;

Form2.ADOTable1.Close;//не работает
Form2.ADOTable1.Open;//не работает
Form1.Close;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.ADOTable1.Close; //так работает
Form2.ADOTable1.Open; // так работает
end;
Ответить с цитированием
  #2  
Старый 20.10.2010, 12:40
SPasV SPasV вне форума
Прохожий
 
Регистрация: 20.10.2010
Сообщения: 1
Репутация: 10
По умолчанию

Тоже сталкивался с подобной ошибкой ((((

Но случайно все-таки нашел причину!!!!

Дело в том, что DbGrid корректно обновляется только в том случае, когда только в связанном с ней adotable произошли изменения. Поэтому нужно присвоить какой-то ячейке ее же значения и все!

Например, можно написать такое:
Цитата:
adotable.SQL.Clear;
adotable.SQL.Add('SELECT * FROM sklad;' );
adotable.Active:=true;
adotable.First;
adotable.Edit;
adotable.Fields[3].AsInteger:=adotable.Fields[3].AsInteger;
adotable.Post;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter