Главная страница
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.03 c
11-1081013613
mehos
2004-04-03 21:33
2004.10.03
Ширина выводимой меню, при OwnerDraw=true


8-1089100257
Сергей Г
2004-07-06 11:50
2004.10.03
Частота и длительность звука


10-1043831821
RAM_S
2003-01-29 12:17
2004.10.03
О каких сетях идет речь


14-1094969131
Knight
2004-09-12 10:05
2004.10.03
Добро возвращается Злом трижды...


1-1095444973
Antonmm2
2004-09-17 22:16
2004.10.03
ImageList