Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как сделать обновление данных? [D6, IB6.x]


Страницы:   1 2 3

Сказочник ©   (2004-04-21 15:27:00) 

как сделать обновление данных на всех клиентах после add, update, delete?


bushmen   (2004-04-21 17:20:00) [1]

>если делаю close и  open вставляется по 2 записи!

Хм, а DataGrid прикручен случайно не к IBQuery1 ?

Тогда надо сначала в IBQuery1 запихнуть строчку типа 'select * from table1' А потом уже делать Open


stud   (2004-04-21 17:05:00) [2]

после енд
ibquery1.close;
ibquery1.sql.text:='select * from client';
ibquery1.open;


Соловьев   (2004-04-21 17:03:00) [3]


> Сказочник   (21.04.04 16:35) [39]

почему ты не хочешь глянуьб демки из делфи? там по IBX - нормальные примеры.


Johnmen   (2004-04-21 16:50:00) [4]

>Курдль ©   (21.04.04 16:14) [27]
>Ну тарды и вправду лучше сделать ему сначала .Close, а потом - .Open

Автору лучше сделать только Close. И забыть обо всём...:)

>Сказочник

"Перед смертью не надышишься" (с)


Сказочник   (2004-04-21 16:35:00) [5]

Купи книжку "Мир InterBase", кучу времени съекономишь.
Блин у меня диплом горит, да я и думаю у нас её вряд ли купишь, в Томске, но всё равно спасибо за совет!


dimm22   (2004-04-21 16:32:00) [6]


> если делаю close и  open вставляется по 2 записи!


Купи книжку "Мир InterBase", кучу времени съекономишь.


Курдль   (2004-04-21 16:30:00) [7]


> Курдль ©   (21.04.04 16:24) [33]

Фигню я какую-то написал :))) Пойду напьюсь, а то совсем вы меня запутали! :)


dimm22   (2004-04-21 16:28:00) [8]


> если делаю close и  open вставляется по 2 записи!

Гы, гы. Ну я ж говорю, читай о IBDataSet, а то ты так и не поймёшь о чём речь идёт.


Сказочник   (2004-04-21 16:27:00) [9]

После ExecSQL; но перед end; Надеюсь, в DataSource грида прописан именно IBQuery1. конечно!


Сказочник   (2004-04-21 16:25:00) [10]

если делаю close и  open вставляется по 2 записи!


Курдль   (2004-04-21 16:24:00) [11]

Ладно, в Вашем коде

with Form1.IBQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('INSERT INTO CLIENT (F_NAME, L_NAME, M_NAME, PASSPORT_SERIAL,');
  SQL.Add('PASSPORT_NUMBER, PASSPORT_DATE, PASSPORT_PLACE, BIRTHDAY, ADRESS,');
  SQL.Add('PHONE, COMMENT)');
  SQL.Add('VALUES (:F_NAME, :L_NAME, :M_NAME, :PASSPORT_SERIAL,');
  SQL.Add(':PASSPORT_NUMBER, :PASSPORT_DATE, :PASSPORT_PLACE, :BIRTHDAY, :ADRESS,');
  SQL.Add(':PHONE, :COMMENT)');
  Params[0].AsString:=f_name.Text;
  Params[1].AsString:=l_name.Text;
  Params[2].AsString:=m_name.Text;
  Params[3].AsString:=serial_p.Text;
  Params[4].AsString:=number_p.Text;
  Params[5].AsDate:=date_p.Date;
  Params[6].AsString:=place_p.Text;
  Params[7].AsDate:=birthday.Date;
  Params[8].AsString:=adress.Text;
  Params[9].AsString:=phone.Text;
  Params[10].AsString:=comment.Text;
  ExecSQL;
 end;

добавьте

  Open;

После ExecSQL; но перед end; Надеюсь, в DataSource грида прописан именно IBQuery1.


Соловьев   (2004-04-21 16:24:00) [12]


> Курдль ©   (21.04.04 16:21) [31]

о том что если он транзакцию не подтвердит - никто не увидит его изменений.


Курдль   (2004-04-21 16:21:00) [13]


> Сказочник   (21.04.04 16:12) [25]
> Соловьев
> (И в событии AfterPost: IBTransaction.CommitRetaining;)
> эти события у IBQuery?


Вы оба ващще о чем?!! Увлеклись? Какие транзакции? Какие события? :)


Сказочник   (2004-04-21 16:19:00) [14]

Курдль ©   (21.04.04 16:14) [27]

> У гридов прописан DataSource?  да IBQuery

Не может быть! Должен быть какой-нить объект типа TDataSource. да бес попутал TDataSource там прописаны!


Соловьев   (2004-04-21 16:16:00) [15]


> эти события у IBQuery?

да


Курдль   (2004-04-21 16:14:00) [16]


> У гридов прописан DataSource?  да IBQuery

Не может быть! Должен быть какой-нить объект типа TDataSource.


> Делаю, например IBQuer.refresh после execSQL(см. в примере
> выше), вылезает ошибка: cannot perform this operation on
> a closed dataset

Ну тарды и вправду лучше сделать ему сначала .Close, а потом - .Open


stud   (2004-04-21 16:14:00) [17]

только между end и ibquer должен произойти commit


stud   (2004-04-21 16:13:00) [18]


>    Params[8].AsString:=adress.Text;
>    Params[9].AsString:=phone.Text;
>    Params[10].AsString:=comment.Text;
>    ExecSQL;
>   end;

IBQuer.close;
IBQuer.open;


Сказочник   (2004-04-21 16:12:00) [19]

Соловьев
(И в событии AfterPost: IBTransaction.CommitRetaining;)
эти события у IBQuery?


Соловьев   (2004-04-21 16:09:00) [20]


> Сказочник   (21.04.04 16:03) [21]


read_committed
rec_version
nowait

И в событии AfterPost: IBTransaction.CommitRetaining;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо