Конференция "Базы" » IBQuery и GeneratorField [D7]
 
  • REA (16.07.08 12:21) [0]
    Уважаемые мастера, подскажите как использовать связку TIBQuery и GeneratorField, если требуется вставить запись (insert) и получить значение генератора (например до вставки).

    По идее значение GeneratorField должно присваиваться полю OnNewRecord, но там нет ни полей как таковых (только параметры Insert) ни вызова Append.

    Каким образом можно настроить GeneratorField, чтобы при вставке записи в некий параметр Insert попадало требуемое значение генератора?
  • Johnmen © (16.07.08 15:10) [1]
    сходить на http://www.ibase.ru и почитать про генераторы
    там и примеры будут...
  • REA (16.07.08 15:59) [2]
    Нужен ответ на конкретный вопрос. Вопрос не про генераторы, а про TIBQuery.
  • Johnmen © (16.07.08 16:04) [3]
    Ну не хочешь, не ходи. Дело твоё...
  • REA (16.07.08 16:13) [4]
    Уже успел посмотреть все что можно про сабж. Просмотрел исходники. Иначе бы не спрашивал.
  • Поросенок Винни-Пух © (16.07.08 16:14) [5]
    По идее значение GeneratorField должно присваиваться полю OnNewRecord

    так и происходит если выбрана опция на OnNewRecord генерить значение
  • Правильный$Вася (16.07.08 16:15) [6]

    > Уже успел посмотреть все что можно про сабж. Просмотрел
    > исходники.

    теперь подумай, попробуй
    повтори цикл сначала
  • REA (16.07.08 16:19) [7]
    >теперь подумай, попробуй повтори цикл сначала

    по существу вопроса пожалуйста

    >так и происходит если выбрана опция на OnNewRecord генерить значение

    генератор вызывает Apply в том случае, если генератору присвоено поле и Dataset открыт. В данном случае открыть его не удается потому что 1) это не нужно 2) SQL запрос <> select
  • Поросенок Винни-Пух © (16.07.08 16:21) [8]
    2) SQL запрос <> select

    <Цитата>


    Это пипец.
    Какой тогда тебе OnNewRecord?
  • Поросенок Винни-Пух © (16.07.08 16:22) [9]
    ой, мама.
    у него там insert набабахан, а чувак ждет прихода генератора.
  • REA (16.07.08 16:23) [10]
    >Какой тогда тебе OnNewRecord

    да любой штатный способ получения значения генератора подойдет.
    Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?
  • REA (16.07.08 16:25) [11]
    >у него там insert набабахан, а чувак ждет прихода генератора.
    именно так. открывать ничего не нужно - нужно вставить сгененрированное значение.
  • Поросенок Винни-Пух © (16.07.08 16:29) [12]
    стандартный sql на получение значения генератора на клиенте.
    в факе есть, в доке есть, везде есть.
    удачи.
  • Поросенок Винни-Пух © (16.07.08 16:31) [13]
    Перефразирую вопрос: как используя компонент TIBQuery и запрос Insert получить значение генератора для этого запроса через GeneratorField?

    ответ: никак!
  • REA (16.07.08 17:21) [14]
    >ответ: никак!

    тогда так: какие еще существуют малозатратные способы (с точки зрения производительности и кодирования) получения значения генератора для Insert?

    вариант с IBDataSet мне не кажется очень хорошим, т.к. там требуется открывать DataSet (select). Использование генератора "в лоб" - т.е. получением запросом из системной таблицы тоже не лучший вариант - хочется чтобы работали компоненты, поскольку для этого их и придумывали.
  • Правильный$Вася (16.07.08 17:43) [15]

    > перефразирую: как используя компонент TIBQuery и запрос Insert получить
    > значение генератора для этого запроса через GeneratorField?

    перефразирую: как используя бензопилу и бензин получить елку через оптический прицел

    > по существу вопроса пожалуйста

    уж существеннее некуда
    готовые решения только в "начинающим"
  • Поросенок Винни-Пух © (16.07.08 17:56) [16]
    select gen_id(:p_gen_name,:p_step)
  • REA (16.07.08 17:58) [17]
    >как используя бензопилу и бензин получить елку через оптический прицел

    не вижу елки и пилы. задача проще некуда - все тоже самое, что в IBDataSet, но без Select. Вместо 10 бесполезных постов уже можно было дать несколько решений.
  • REA (16.07.08 18:00) [18]
    >select gen_id(:p_gen_name,:p_step)

    См. выше - желательно использовать компоненты. Получить генератор запросом я могу, только неужели для такой тривиальной задачи уже не написан код?
  • Поросенок Винни-Пух © (16.07.08 18:02) [19]
    См. выше - желательно использовать компоненты

    А кто-то  запрещает?
  • Поросенок Винни-Пух © (16.07.08 18:03) [20]
    Получить генератор запросом я могу,

    Но хочется не запросом, а телепатией?
 
Конференция "Базы" » IBQuery и GeneratorField [D7]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]