Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1082710645
MBo
2004-04-23 12:57
2004.05.16
Пятничная разминка. Нетрудные задачки.


4-1080353007
MPS
2004-03-27 05:03
2004.05.16
Принудительное закрытие контекстного меню


1-1082932406
Мыш
2004-04-26 02:33
2004.05.16
Перестал компилироваться пакет


1-1083227723
senya
2004-04-29 12:35
2004.05.16
PDF не понимает русский язык, выдает "иероглифы"


3-1082443117
denmin
2004-04-20 10:38
2004.05.16
Как узнать тип поля таблицы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский