Старый 29.01.2004, 17:17   #1   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
Question Обновление данных в InterBase

Хотелось бы узнать о способах обновления данных на клиенте.
1. Поставить кнопку обновить.
2. Сервер посылает команду, что данные изменились, клиент получив сообщение обновляет их.
А как в основном это делается на практике?

P.S.
Можно ли в FireBird (InterBase) заблокировать одну строку на запись? Пробовал что-то сделать, но блокируется вся таблица.
  Ответить с цитированием
Старый 29.01.2004, 18:04   #2   
Хищник
 
Аватар для Rabbit
 
Сообщений: 217
Регистрация: 24.01.2004
Возраст: 43

Rabbit вне форума Не в сети
JOHN_PROFF
Цитата:
Хотелось бы узнать о способах обновления данных на клиенте.
1. Поставить кнопку обновить.
2. Сервер посылает команду, что данные изменились, клиент получив сообщение обновляет их.
По таймеру ещё можно.
Цитата:
А как в основном это делается на практике?
Как сделаешь так и будет. Я в последнем своем проекте вообще не заморачивался с обновлением на клиенте, т.е. при запуске все данные считались с сервера и всё - дальше только добавление и обновление. Но это у меня так и надо.
Цитата:
P.S.
Можно ли в FireBird (InterBase) заблокировать одну строку на запись? Пробовал что-то сделать, но блокируется вся таблица.
Поиграйся с Isolation Level'ами. Может поможет, но маловероятно... да и не нужно.
  Ответить с цитированием
Старый 30.01.2004, 07:02   #3   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
JOHN_PROFF
Цитата:
А как в основном это делается на практике?
По разному делается - в зависимости от того, что нужно Кнопкой проще всего обновлять. Но один раз пришлось заморачиваться. Заказчику требовалось, чтоб если один клиент изменяет определенные данные, то у других автоматом должны обновляться.

Использовали механизм Event, который есть в IB. Хорошая штука, почитай описание.

Цитата:
Можно ли в FireBird (InterBase) заблокировать одну строку на запись?
http://www.ibase.ru/devinfo/pslock.htm

zss_vrn добавил [date]1075439147[/date]:
SELECT FOR UPDATE должен блокировать только то, что нужно.
  Ответить с цитированием
Старый 05.02.2004, 18:41   #4   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
zss_vrn
Цитата:
http://www.ibase.ru/devinfo/pslock.htm
Про это я и говорил, что не получается.
  Ответить с цитированием
Старый 06.02.2004, 07:08   #5   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
JOHN_PROFF
Цитата:
zss_vrn
quote:

http://www.ibase.ru/devinfo/pslock.htm


Про это я и говорил, что не получается.
А на чем прога писана и какие компоненты используются?
  Ответить с цитированием
Старый 09.02.2004, 09:56   #6   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
zss_vrn Delphi 7 с компонентами FibPlus
  Ответить с цитированием
Старый 09.02.2004, 11:15   #7   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
Фибы - очень замечательно, они поддерживают механизм транзакций в полном объеме.

SELECT FOR UPDATE пробовал?
  Ответить с цитированием
Старый 10.02.2004, 09:31   #8   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
zss_vrn Нет, а как надо?

P.S.
Как пользовать параметры в фибовском датасете???
  Ответить с цитированием
Старый 10.02.2004, 11:01   #9   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
SELECT FOR UPDATE вместе с WHERE должен блокировать только те записи, которые попадают в WHERE.

Честно говоря, я этим давно занимался, но помню, что в конце концов удалось заблокировать именно то, что нужно.

Параметров море, надо доку смотреть, в инете этого добра полно. Только используются параметры самой транзакции, не датасета. Датасет только использует транзакцию, насколько ч помню.
  Ответить с цитированием
Старый 11.02.2004, 13:05   #10   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
zss_vrn Я говорю про паратмезируемый запрос. Например where id = rm (prm меняется динамически)
  Ответить с цитированием
Старый 12.02.2004, 07:04   #11   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
Блин, на фибах не помню, на dbExpress - двоеточие, например
WHERE ID = :ID.

На фибах или двоеточие или %, забыл... Но там же хелпов полно!
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind