Сейчас не у компа, но если вместо exec сделать open, это не решит проблему?
Переходите на синтетические первичные ключи, на snowflake например. У них нет недостатков, сплошные достоинства.
в IBQuery? нет, ошибка ещё на этапе присвоения значения первому же параметру через ParamByName Data type unknown и всё
у меня ограничение не вносить изменений в схему бд
На схему БД это никак не влияет. Или у вас 32-битные первичные ключи?
Посмотри как сделано у Логинова. Насколько помню у него это использовалась, и интерфейс внешний был приятный. Мы уходили от IBX, иначе наверное стали бы использовать его либу. Возможно у тебя запрос странный. У меня такие ошибки были при запросах типа select :xxx from rdb$database Но тут не ibx, тут именно сервер не мог понять что происзодит У меня были такие ошибки
ключ генерируется триггером на insert
О, мьсе знает толк в извращениях! Желаю приятно потра... поработать. =)
Это нормальная логика работы БД, извращение - генерить пк на клиенте без подстраховки на сервере
Нормальная, но не оптимальная. Впрочем, не буду мешать получать удовольствие от работы =)
Серёг, вот открыл ты базу сторонним инструментом, вставил запись и ой... Триггера на генерацию пк у тебя нет (я про ib/fb, где нет автоинкрементального типа поля)
Генерить ключ не в базе можно только если это делает единый код на сервере.
Зачем мне править базу сторонним инструментом? Я всегда встраиваю браузер-редактор базы в приложение, чтобы в продакшене под админом можно было посмотреть "под капот".
Ну да, лучше взвалить функции сервера на клиента и думать ещё и об этом. 😊
Генератор snowflake (и функция отображения его в виде времени и места) делаются один раз, а дальше все тупо работает. Проблемы могут быть только если системные часы назад прыгают, но и там вероятность попасть ровно в ту же миллисекунду очень мала.
Ни разу не понял, о чем ты. Видимо, что-то очень специфичное 😊
https://en.m.wikipedia.org/wiki/Snowflake_ID
Если я правильно понял, ты предлагаешь использовать сторонний компонент/инструмент вместо того, чтобы воспользоваться штатными механизмами сервера? Ты серьёзно? 😁
Я предлагаю вместо штатного домкрата использовать подьемник. Но кто я такой, чтобы лишать людей удовольствия от преодоления трудностей.
Я щас страшно выругаюсь матом, но... ...а execute block Или execute statement Можно протащить через ibx?
Если вопрос ко мне, то ответ: без понятия. Я не работал с Interbase.
...а, неправильно отмотал. Ну тогда к Игорю. Хочет в гамаке и стоя (ibx) - пусть экспериментирует. Вплоть до создания SP на один раз и сразу их удаления. Хотя в старых IB и IBX были как раз парные баги с мнoгократным вызовом SP. Может быть из ibx его потом убрали, или нет, не знаю. Но лучше взять дружественную к FB библиотеку, чем плыть против течения
а что говорят исходники? :)
Дим, ты щас вслух рассуждаешь или как? Чем тебе лазаревский ibx не потрафил?
Что-то такое, что Firebird крадёт долю рынка interbase и должен быть уничтожен :-) Может быть с тех пор эмба с эменила политику, но мне перестало быть интересно бегать по граблям против течения :-) Поля типа boolean, ноуые команды типа merge или execute block для скриптовалки... Returning, опять же. Я упал с гамака и боюсь лезть обратно :)
ibx4laz, если быть точнее В легаси он остался тем же добрым старым добрым ibx. Даже ibsql.close на месте :)))) По поводу всяких фигнюшек типа boolean полей и прочего, чета я по старинке кодирую их через smallint и не парюсь. Вот поддержка новых типов для FB4 и старше, наверное актуальна. Я пока серьезно даже доку не изучал. Походе надо ориентироваться уже на FB 5/6. Надеюсь, Вайман будет поддерживать свои ibx в актуальном состоянии
Можно, только если ParamCheck := false
Ну да, парсер отключить... В тексте запроса анонимные параметры сделать. И потом объекты параметров руками создавать... ...то есть шанс :-)
Обсуждают сегодня