Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизНужно создать типа генератора в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c