Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Внизкак сделать обновление данных? Найти похожие ветки
← →
Сказочник (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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.038 c