Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

как сделать обновление данных?   Найти похожие ветки 

 
Сказочник   (2004-04-21 15:27) [0]

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


 
Reindeer Moss Eater ©   (2004-04-21 15:30) [1]

Close; Open;


 
Курдль ©   (2004-04-21 15:31) [2]

Refresh


 
Сказочник   (2004-04-21 15:32) [3]

что close, open? DataBase?


 
Reindeer Moss Eater ©   (2004-04-21 15:33) [4]

То, где у тебя данные надо обновить.


 
Сказочник   (2004-04-21 15:34) [5]

---> Курдль
чего refresh?


 
Reindeer Moss Eater ©   (2004-04-21 15:34) [6]

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

А чего add,update,delete?


 
Сказочник   (2004-04-21 15:36) [7]

Reindeer Moss Eater
ну да после добавления , оновления и удаления записей в таблице!


 
Reindeer Moss Eater ©   (2004-04-21 15:38) [8]

Вот и close, open и refresh в таблице


 
Сказочник   (2004-04-21 15:38) [9]

Reindeer Moss Eater
данные нужно на DBGridах обновить!


 
Сказочник   (2004-04-21 15:40) [10]

(Вот и close, open и refresh в таблице)
А если я таблице через IB создавал?


 
Reindeer Moss Eater ©   (2004-04-21 15:41) [11]

Главное чтоб не через зад


 
Fay ©   (2004-04-21 15:42) [12]

2Reindeer Moss Eater ©   (21.04.04 15:41) [11]
Сов. верно 8)


 
Сказочник   (2004-04-21 15:43) [13]

Reindeer Moss Eater :-))))
ну а всё же , напиши как это ручками сделать, плиз!


 
Reindeer Moss Eater ©   (2004-04-21 15:46) [14]

Там же где ты написал add,update,delete - напиши close и open.
В смысле вызови эти методы у экземпляров этих же классов


 
Сказочник   (2004-04-21 15:54) [15]

Reindeer Moss Eater

 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 & Close? (прошу извинить затупость :-
)))


 
dimm22   (2004-04-21 15:55) [16]


>
> Сказочник   (21.04.04 15:43) [13]

У тебя IBDataSet пользуется (или ещё чего)?  Вот его и refresh.


 
dimm22   (2004-04-21 15:56) [17]


> Сказочник   (21.04.04 15:54) [15]

А чё не DataSet? Религия?


 
Соловьев ©   (2004-04-21 15:57) [18]


> Сказочник   (21.04.04 15:54) [15]

Какие уровни изоляции транзакции?(Дабл клиr по IBTransaction)


 
stud ©   (2004-04-21 15:58) [19]

если на всех клиентах, то навреное генериш событие post_event и по приходу этого события на клиент обновляеш нужные наборы...


 
Курдль ©   (2004-04-21 16:01) [20]


> Reindeer Moss Eater
> данные нужно на DBGridах обновить!

Ок. Исследуем весь организЬм.
У гридов прописан DataSource?
У DataSource прописан DataSet?
Ищешь его название и делаешь НАЗВАНИЕ.Refresh;


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

Соловьев
никакие, а какие надо?


 
dimm22   (2004-04-21 16:04) [22]


> Сказочник   (21.04.04 15:54) [15]

Оригинальный конечно метод - генерить SQL текст запроса с именами параметров динамически, а потом эти параметры подставлять (тоже динамически). Кажется тебе надо почитать про IBDataSet.


 
Сказочник   (2004-04-21 16:08) [23]

Курдль
Ок. Исследуем весь организЬм.
У гридов прописан DataSource?  да IBQuery
У DataSource прописан DataSet? да IBQuery
Ищешь его название и делаешь НАЗВАНИЕ.Refresh;
Делаю, например IBQuer.refresh после execSQL(см. в примере выше), вылезает ошибка: cannot perform this operation on a closed dataset


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


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


read_committed
rec_version
nowait

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


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

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


 
stud ©   (2004-04-21 16:13) [26]


>    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:14) [27]


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

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


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

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


 
stud ©   (2004-04-21 16:14) [28]

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


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


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

да


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

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

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

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


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


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


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


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


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

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


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

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

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:25) [34]

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


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

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


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


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

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


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


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

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


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


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


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


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

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


 
Johnmen ©   (2004-04-21 16:50) [40]

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

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

>Сказочник

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



Страницы: 1 2 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.035 c
1-1083344545
Alpupil
2004-04-30 21:02
2004.05.16
HTCAPTION


14-1082571257
ИМХО
2004-04-21 22:14
2004.05.16
Свежий взгляд на сайт Мастера Delphi


6-1080234997
Ландграф Павел
2004-03-25 20:16
2004.05.16
TWebBrowser


14-1082707191
Haker
2004-04-23 11:59
2004.05.16
Книга


4-1080817089
Lobster
2004-04-01 14:58
2004.05.16
Горячие клавиши