установка генератора ч-з параметр TpFIBDataSet
Модератор: kdv
установка генератора ч-з параметр TpFIBDataSet
ч-з TpFIBDataSet получается значение генератора
и должно устанавливаться здесь же, но не хочет.
SelectSQL := 'select GEN_ID(GEN_NPP,0) as GENPP from RDB$DATABASE'
UpdateSQL := 'set generator GEN_NPP to :GENPP';
пытаюсь подставить значение ч-з FieldByName('GENPP').AsInteger:=1234;
и при выполнении ругается на ':' , FIBPlus ,насколько я понял, не находит ключевых слов update,insert,delete и подстановку параметра не производит.
Вручную формиравать запрос не хочу, т.к. он хранится в базе и может быть со временем переделан на что-нибудь другое и возможно безгенераторное.
Можно-ли обойти эту проблему?
FIBPlus 6.4.1
и должно устанавливаться здесь же, но не хочет.
SelectSQL := 'select GEN_ID(GEN_NPP,0) as GENPP from RDB$DATABASE'
UpdateSQL := 'set generator GEN_NPP to :GENPP';
пытаюсь подставить значение ч-з FieldByName('GENPP').AsInteger:=1234;
и при выполнении ругается на ':' , FIBPlus ,насколько я понял, не находит ключевых слов update,insert,delete и подстановку параметра не производит.
Вручную формиравать запрос не хочу, т.к. он хранится в базе и может быть со временем переделан на что-нибудь другое и возможно безгенераторное.
Можно-ли обойти эту проблему?
FIBPlus 6.4.1
Бывает необходимо менять значение генератора при конвертации данных. В этом случае можно в тексте SQL вместо параметра забивать необходимое значение. Котороче формировать текст SQL в тот момент, когда это необходимо и с необходимым значением параметраCyberMax писал(а):Зачем тебе прямо в программе менять значение генератора?
Ну, вот, сразу и извращенцем назвали.CyberMax писал(а):Отдает каким-то извращением... Можешь привести конкретный пример данной необходимости?
Сейчас за давностью лет до деталей не вспомню, но ситуация была такая. переводил БД из Paradox в IB. При конвертации таблиц необходимо было обеспечить точное соответсствие первичных ключей.
Самым удообным оказалось при вставке записей в IB таблицы не назначать новый ключ по генератору, а присваивать ему значение из соответствующей старой таблицы. После заливки в IB таблицы проверяются мах значения ключей и назначаются значения генераторам.
С чем могу согласиться, - это исключительная ситуация и при нормальной работе с БД не встречается.
Номер формируемого платежного поручения например для оправки в ч-з клиент-банк, в нем кроме всего прочего вручную платежки клепают или из других программ подгружают, а нумерация не должна пересекаться с моей программой, да и в начале года нумерацию можно обнулить.CyberMax писал(а):Зачем тебе прямо в программе менять значение генератора?
ЗЫ. Сделал установку генераторов ч-з макросы.