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

Вниз

уникальный номер записи   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.055 c
14-1092423668
Piter
2004-08-13 23:01
2004.09.05
Как создать меню на HTML?


3-1091193331
Alex_2004
2004-07-30 17:15
2004.09.05
Активные сервера MS SQL


1-1093004464
Aks
2004-08-20 16:21
2004.09.05
работа с АутЛуком. Как избежать лишних вопросов?


1-1093194731
moder
2004-08-22 21:12
2004.09.05
Memo


4-1090309158
andrey__
2004-07-20 11:39
2004.09.05
Как программно узнать процент Загрузку ЦП