Идентификатор добавленной записи в Firebird

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Идентификатор добавленной записи в Firebird

Сообщение Ulrich » 17 апр 2006, 16:24

Помогите, пожалуйста.

Необходимо сопоставить каждой записи уникальный идентификатор, не добавляя в таблицу лишних данных типа автоинкрементных полей. Лучше всего было бы получить внутренний номер записи, который ей присваивает сам Firebird.
Возможно ли это?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 18 апр 2006, 08:20

Нет. У записи нет "внутреннего номера". Есть только положение в базе AKA RDB$DB_KEY, но он непостоянен.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Re: Идентификатор добавленной записи в Firebird

Сообщение Ivan_Pisarevsky » 18 апр 2006, 10:41

Ulrich писал(а):Необходимо сопоставить каждой записи уникальный идентификатор, не добавляя в таблицу лишних данных типа автоинкрементных полей.
Ключ, это не лишние данные, а жизненно необходимый атрибут. Често говоря не преставляю, как реляционная база будет жить без ключей... :shock:

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 18 апр 2006, 17:49

С ключом и дурак сможет. Не кошерно это.

Maddy
Сообщения: 2
Зарегистрирован: 19 апр 2006, 00:06

Сообщение Maddy » 19 апр 2006, 00:09

Гы ;) А генератор - он не в таблице ;) Если на то пошло ..... и искуственный pk на генераторе - весчь оччень хорошая - спасает от геморроя ;)

Maddy
Сообщения: 2
Зарегистрирован: 19 апр 2006, 00:06

Сообщение Maddy » 19 апр 2006, 00:11

Merlin писал(а):С ключом и дурак сможет. Не кошерно это.
Но индекс-то все-равно нужен ....

DS
Сообщения: 41
Зарегистрирован: 17 фев 2005, 16:54

Re: Идентификатор добавленной записи в Firebird

Сообщение DS » 19 апр 2006, 05:26

Ulrich писал(а):Возможно ли это?
А нафига :roll:

Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Re: Идентификатор добавленной записи в Firebird

Сообщение Ulrich » 19 апр 2006, 11:07

DS писал(а):
Ulrich писал(а):Возможно ли это?
А нафига :roll:
Начальство требует.

Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Сообщение Ulrich » 19 апр 2006, 14:23

Товарищи, этот rdb$db_key какого типа вообще?
Запросы выводят его значение, а организовать поиск нужной строки по полученному значению не получается. :( Ничего не находит.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 апр 2006, 14:31

тебе это точно надо? формат дбкея двоичный.

Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Сообщение Ulrich » 19 апр 2006, 14:49

kdv писал(а):тебе это точно надо? формат дбкея двоичный.
А как его в раздел where писать?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 19 апр 2006, 15:11

Короче, тебе сюда. На самом деле познавательно:

http://search.atomz.com/search/?sp-q=tn ... m=1&sp-s=0


Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Сообщение Ulrich » 19 апр 2006, 16:27

Ага! Спасибо! Всё стало немного лучше. :)
Запросы в isql работают.
Правда, через XSQLDA возвращается какая-то чушь. Продолжаю бороться. :evil:

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 апр 2006, 18:08

не чушь. читай внимательнее. это двоичный идентификатор в строке.
Чудится мне, что ты нечто нехорошее затеваешь. Но, хозяин - барин.

Ulrich
Сообщения: 6
Зарегистрирован: 17 апр 2006, 16:12

Сообщение Ulrich » 20 апр 2006, 16:17

Спасибо за помощь! Теперь всё работает как надо.

bachin
Сообщения: 16
Зарегистрирован: 20 апр 2006, 17:17

Сообщение bachin » 20 апр 2006, 17:21

может оно и работает, только вот тому кто проэктировал БД без примари кеев ручки то поотрывать бы...

Ответить