Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Внизуникальный номер записи Найти похожие ветки
← →
snake1977 (2004-08-11 15:43) [0]Здравствуйте! есть две таблицы свзяанные между собой уникальным номером. уникальный номер создается генератором в тригере. Т.е. при добавлении записи триггер заносит уникальный номер автоматически.
Исходя из этого возникает вопрос, если в программе требейтся автоматически заполнить данные таблицы, то после вставки новой записи в главную таблицу не известно какой номер ей присвоил триггер, и сл-но невозможно заполнить этот номер в подчиненной. как узнать какой номер триггер добавил новой записи??
← →
Наталия © (2004-08-11 15:45) [1]Узнать его до добавления записи. На клиенте. Присвоить тоже там же, а не в триггере.
← →
Sergey13 © (2004-08-11 15:45) [2]БД?
Можно до вставки узнавать этот номер.
← →
Ega23 © (2004-08-11 15:50) [3]для MSSQL:
1. Если не IDENTITY:
declare @X int
select @X=Max(Table1ID)+1 from Table1ID
insert into Table1 (Table1ID, ....)
values (@X, ....)
1. Если IDENTITY:
declare @X int
insert into Table1 (....)
values (....)
Select @X=@@IDENTITY
-- для MS SQL 2000 Select @X=SCOPE_IDENTITY()
← →
Соловьев © (2004-08-11 15:51) [4]СУБД какая и компонеты?
← →
snake1977 (2004-08-12 08:25) [5]СУБД - InterBase
т.е. вы предлагаете ручками заполнять его
а как узнать какой номер сгенерирует gen_id
?
← →
Ильш © (2004-08-12 08:42) [6]FIB замечательно все это обрабатывает и позволяет получать уникальный номер сразу
← →
Anatoly Podgoretsky © (2004-08-12 08:45) [7]Sergey13 © (11.08.04 15:45) [2]
Нельзя до вставки его еще нет, только после вставки.
Если тебе нужен до вставки, то метод указан в Наталия © (11.08.04 15:45) [1]
← →
Наталия © (2004-08-12 08:46) [8]select gen_id(generator_name,1) from rdb$database
← →
DenK_vrtz © (2004-08-12 09:09) [9]>Anatoly Podgoretsky © (12.08.04 08:45) [7]
>Нельзя до вставки его еще нет, только после вставки.
Физически нет, но потенциальный номер узнать можно.
Не случайно Sergey13 © спросил про СУБД.
При работе с последовательностями, если не используется механизм заполнения "дырок" и вставка данных в таблицу происходит с одного рабочего места, узнать следующее значение последовательности не составляет труда.
← →
Sergey13 © (2004-08-12 09:10) [10]2[7] Anatoly Podgoretsky © (12.08.04 08:45)
Не понял. Почему мне нельзя, а Наташе по ее методу можно? 8-)
← →
Соловьев © (2004-08-12 09:10) [11]Если компоненты IBX, то для работы с наборами данных надо использовать IBDataSet, в котором есть два замечательных свойства - RefreshSQL и GeneratorField, которые и надо заполнить для правильной работы. 1-е свойство - выдаст согласно сгенерированному во 2-м свойстве уникального значения(желательно вешать на OnNew или OnPost) - данные которые могли измениться на сервере триггерами(не путать с тем триггером, который подставляет ПК)
← →
Anatoly Podgoretsky © (2004-08-12 09:12) [12]Sergey13 © (12.08.04 09:10) [10]
С чего ты взял что у Наташи так, у нее как раз наоборот, номер вносится не триггером из генератора, а получается на клиенте до вставки и вставляется с клиента в запись, а не триггером.
DenK_vrtz © (12.08.04 09:09) [9]
Потенциальный номер не имеет смысла, он так и остается потенциальным!
← →
Sergey13 © (2004-08-12 09:21) [13]2[12] Anatoly Podgoretsky © (12.08.04 09:12)
А тебе не кажется, что ты домысливаешь "мои" мысли по своему? Где я про все это писал? 8-)
← →
DenK_vrtz © (2004-08-12 09:23) [14]>snake1977
При Вашем подходе правильным, на мой взгляд, выходом было сначала запостить главную таблицу и только после вставлять данные в подчиненную таблицу
>Anatoly Podgoretsky © (12.08.04 09:12) [12]
все имеет свой смысл!
← →
Anatoly Podgoretsky © (2004-08-12 09:44) [15]Sergey13 © (12.08.04 09:21) [13]
А тебе не кажется, что ты совсем тут ни причем или snake1977 и
Sergey13 одно и тоже лицо, нехорошо тогда.
← →
Sergey13 © (2004-08-12 09:54) [16]>[7] Anatoly Podgoretsky © (12.08.04 08:45)
>Sergey13 © (11.08.04 15:45) [2]
>Нельзя до вставки его еще нет, только после вставки.
>[12] Anatoly Podgoretsky © (12.08.04 09:12)
>Sergey13 © (12.08.04 09:10) [10]
>С чего ты взял что у Наташи так,
Я и snake1977 это разные не только лица, но и люди вообще. 8-)
← →
snake1977 (2004-08-12 11:28) [17]>>Наталия ©
спасибо за ответ, как грится - то что доктор прописал :)
← →
Соловьев © (2004-08-12 11:29) [18]прочитайте внимателно [11] - и Вы лишите себя многих нэгараздив:)
← →
Наталия © (2004-08-12 14:33) [19]Sergey13 © (12.08.04 09:10) [10]
Обычная дискриминация, хи-хи-хи :))
← →
Sergey13 © (2004-08-12 14:39) [20]2[19] Наталия © (12.08.04 14:33)
Т.е. АП мужененавистник? Или женолюб? 8-)
← →
Наталия © (2004-08-12 14:43) [21]Будем обсуждать АП? :))
Между прочим, говорить о присутствующих в третьем лице нетактично. :)))
← →
Sergey13 © (2004-08-12 14:48) [22]2[21] Наталия © (12.08.04 14:43)
ХХХХХХХХХХХХХХХХХ
Это я замолчал. 8-)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c