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

Вниз

Нужно создать типа генератора в Interbase!   Найти похожие ветки 

 
kvit ©   (2004-09-01 11:34) [0]

У  меня будет N удаленных серверов. Данные через модем по запросу конкретной машины будут блужтать от сервера к серверу и автоматически будут обновляться все данные для этого (по моей логики) у каждой таблицы буду дополнительные поля ID: int (вместе с ID_parent создают уникальный ключ), ID_parent: int (имя сервера-родителя) и DT (дата обновления данных).

Мне нужно на каждом сервере создать типа генератора в InterBase чтобы порождать ID (нумерация начиналась с 0 (+1) типа IDENTITY, но так чтобы я сам мог принудительно записывать значение).
Т.е. другими словами у каждого сервера был свой автономный счетчик ID и имел свой счет. Но в любой момент я в данную таблицу мог вписать значения полученные от другого сервера (ID могут совпадать, а ID_parent быть разными).

Если кто поймет мои мозги, то помогите.. или я перефразирую вопрос :))


 
Ega23 ©   (2004-09-01 11:37) [1]

1. Для IDENTITY усть директива Set IDENTITY Insert ON\OFF
2. Select @X=@@IDENTITY
3. Select @X=Max(ID)+1
4. Можно даже GUID генерить.

Вариантов много. Что ты хочешь?


 
kvit ©   (2004-09-01 11:43) [2]

Есть например таблица (на удаленых серверах одинаковая):

TABLE1
 ID        : int;      //autoinc
 ...
 ID_parent : int;      // ID servera  
 DT        : Datetime; // GetDate()

------------
ID + ID_parent = KEY
------------
Нужно грамотно управлять ID, с учетом того что одинаковый ID, но разный ID_parent может вставиться посредством обновления с другого сервера.


 
kvit ©   (2004-09-01 11:45) [3]

Управлять генератором поля ID


 
Ega23 ©   (2004-09-01 12:03) [4]

См. [1].1


 
kvit ©   (2004-09-01 12:09) [5]

Написал нечто:

if (@ID_par<>0)
begin
   SET IDENTITY_INSERT P OFF
   declare @ID int
   set @ID=1+(select ISNULL (max(ID),0) from P)                --эмуляция вставки с другого сервера
  insert into P (ID, MSG, ID_server) values (@ID, @msg, @ID_par)
end
else
begin
   SET IDENTITY_INSERT P  ON
   insert into P ( MSG, ID_server) values ( @msg, @ID_par)
end;

Но ругня идет на команду SET IDENTITY_INSERT P  ON/OFF


 
kvit ©   (2004-09-01 12:14) [6]

Я неправильно определил ON и OFF, поменял их местами => все заработало.

Ega23, спасибо за помощь!


 
KSergey ©   (2004-09-02 07:56) [7]

По-моему, [1].4 - как-то вернее будет...



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
6-1090675089
banderas
2004-07-24 17:18
2004.10.03
idTCPServer &amp; idTCPClient1 передача служебной информации


6-1091014488
Alek
2004-07-28 15:34
2004.10.03
Как узнать в експлорере адресс открытой страницы?


8-1089436169
Tahion2
2004-07-10 09:09
2004.10.03
Добраться к пикселю иконки


4-1093079315
Arnold
2004-08-21 13:08
2004.10.03
Как узнать количество запущенных процессов???


4-1093427216
beatles_bntu
2004-08-25 13:46
2004.10.03
Системный запуск приложения под XP