|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2009, 15:42 | #1 |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
Вопрос про транзакции и не только.
Всем привет, вот решил по эксперемнтировать да и просто набраться опыта.
Вопроса 2 первый из них ) Есть база *.gdb есть таблицы но это не важно, суть программа используется на 3 компьютерах через сеть просматривают базу добавляют значения в базу (добавление организации), после добавляемая строчка должна обновиться у всех у кого открыта программа, я предполагаю что значения обновиться после открытия новой формы я думаю это логично, но как добиться так чтобы запись обновилась у всех сразу (а приходилось закрывать программу и открывать снова тогда позиция появляется), значит пребывал DataModule2.IBTransaction1.CommitRe taining; но чет не так 100% делаю нужно делать DataModule2.IBTransaction1.Commit; но при этом у меня программа отключается то есть таблицы закрываются нужно сделать чтобы не закрывались а всегда были октивны, вот все что моно уже изучил что мне так и не чего не дошло ))) подскажите плиз) Вопрос №2 Нужно при DBGrid1DblClick открывается окно Form там DBEdit ы всякие таблицы нужно сделать чтобы при повторном DBGrid1DblClick не изменялась (при этом открыта и старое окно и новое) информация в старом окне и информация в новом окне Пример открытия: var a: string; begin a:=Form3.DBEdit1.Text; Form16.IBDataSet1.SelectSQL.Clear; Form16.IBDataSet1.SelectSQL.Add('se lect * from ORGANIZ where id = '+a+''); Form16.IBDataSet1.Open; Form16.Show; Form16.Caption:=’’; |
14.01.2009, 07:46 | #2 | ||
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Цитата:
Пример: CREATE PROCEDURE MYTABLE_INS( ...... Список парамтров ...... ) AS BEGIN INSERT INTO MYTABLE ( Список полей ) VALUSE ( Список значений ) POST_EVENT 'MYTABLE_UPDATE'; END На стороне клиента используйте TIBEvents. В нем вы регистрируете событие MYTABLE_UPDATE, и когда оно происходит в обработчике события TIBEvents.OnEventAlert прописываете код который будет рефрешить нужные наборы данных. Цитата:
Поместите наборы данных, с которыми связаны элементы управления данными формы, на саму форму. Они будут создаваться вместе с экземпляром формы и не будут зависеть друг от друга. |
||
14.01.2009, 09:12 | #3 |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
Возможно сделать без процедур? и я тут статьи читаю в них указано что можно блакировать данные что хоть после использовния comit данные все рвоно не изчезают. Возможно ли это сдлеать?
|
14.01.2009, 10:56 | #4 |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
а как блокировать записи тоетсь открыл форму и нужно заблакировать данные которые находятся на форме?
Последний раз редактировалось danswin; 14.01.2009 в 10:59. |
14.01.2009, 11:02 | #5 |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
С транзакциями разобрался)
|
14.01.2009, 16:46 | #6 | |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Цитата:
Как данные после comit исчезают? Поясните подробнее не понял вопроса... |
|
14.01.2009, 16:58 | #7 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Во первых, данные можно блокировать на стороне клиента, либо на стороне сервера с помощью транзакций, например, пока пользователь совершает какие либо манипуляции с записями, у других пользователей, эти записи для изменения не доступны. Блокирование отдельных записей создаёт большую нагрузку на сервер.... Если же в определенных случаях у пользователя просто нужно отключить возможность редактирования данных на стороне клиента, тут уж сами подумайте, как временно заблокировать редактирование, вариантов много....
|
14.01.2009, 20:02 | #8 | |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
Я с этим разобрался у меня проблемы былив Транзакшене нужно было поставить ReComit и при каждом сохранение в базу дописывать не Transaction1.Comit а Transaction1.ComitRecovel так помоему )
Цитата:
ВО )))) думай поймеш о чем я просто чуствую что немного не понимаеш о чем я )) |
|
17.01.2009, 12:20 | #9 |
Пользователь
Регистрация: 27.09.2007
Сообщений: 18
|
Все доброго, мне седня ночью преснилось ))) как нужно сделать чтобы показывалось то что надо ))))) Извеняюсь перед всеми мог и сам догодаться, да и может кому понадобиться тож самое А вдруг ))) вообщем вот код для того чтобы показывалось в одной ворме разные записи )
------------------------------ procedure TForm14.DBGrid1DblClick(Sender: TObject); var b: String; begin Form13:=TForm13.Create(self); // Что мне нужно было сделать) Form13.Show; b:=IBDataSet1.FieldByName('ID').AsS tring; Form13.IBDataSet1.SelectSQL.Clear; Form13.IBDataSet1.SelectSQL.Add('se lect * from OS_TABLE where ID = '+b+''); Form13.IBDataSet1.Open; ----------------------------- Думаю комунибудь то помогу ) |
17.01.2009, 18:35 | #10 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
На самом деле мы это знаем, и я вам об этом и писал... В вашем случае, набор данных IBDataSet1 находится на самой форме, он создается с экземпляром формы, поэтому не зависит от других своих собратьев и вы можете изменять его как вам угодно...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по БД в Delphi и не только... | 12345678 | Помощь студентам | 2 | 23.11.2008 13:46 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос про IP | ЧИЖ | Работа с сетью в Delphi | 1 | 23.06.2008 13:53 |
У меня вопрос про базы данных,а точнее про таблицы!!! | Alexij | Общие вопросы Delphi | 1 | 13.04.2008 23:24 |
Транзакции + ADO | azat | БД в Delphi | 3 | 14.01.2008 11:47 |