169 похожих чатов

Средствами IBX как-то можно выполнить запрос insert ... returning?

31 ответов

38 просмотров

Сейчас не у компа, но если вместо exec сделать open, это не решит проблему?

Переходите на синтетические первичные ключи, на snowflake например. У них нет недостатков, сплошные достоинства.

Igor- Автор вопроса
Sergei
Сейчас не у компа, но если вместо exec сделать ope...

в IBQuery? нет, ошибка ещё на этапе присвоения значения первому же параметру через ParamByName Data type unknown и всё

Igor- Автор вопроса
Sergey Bodrov
Переходите на синтетические первичные ключи, на sn...

у меня ограничение не вносить изменений в схему бд

Igor
у меня ограничение не вносить изменений в схему бд

На схему БД это никак не влияет. Или у вас 32-битные первичные ключи?

Igor
в IBQuery? нет, ошибка ещё на этапе присвоения зна...

Посмотри как сделано у Логинова. Насколько помню у него это использовалась, и интерфейс внешний был приятный. Мы уходили от IBX, иначе наверное стали бы использовать его либу. Возможно у тебя запрос странный. У меня такие ошибки были при запросах типа select :xxx from rdb$database Но тут не ibx, тут именно сервер не мог понять что происзодит У меня были такие ошибки

Igor- Автор вопроса
Igor
ключ генерируется триггером на insert

О, мьсе знает толк в извращениях! Желаю приятно потра... поработать. =)

Sergey Bodrov
О, мьсе знает толк в извращениях! Желаю приятно по...

Это нормальная логика работы БД, извращение - генерить пк на клиенте без подстраховки на сервере

Ed Doc
Это нормальная логика работы БД, извращение - гене...

Нормальная, но не оптимальная. Впрочем, не буду мешать получать удовольствие от работы =)

Sergey Bodrov
Нормальная, но не оптимальная. Впрочем, не буду ме...

Серёг, вот открыл ты базу сторонним инструментом, вставил запись и ой... Триггера на генерацию пк у тебя нет (я про ib/fb, где нет автоинкрементального типа поля)

Ed Doc
Это нормальная логика работы БД, извращение - гене...

Генерить ключ не в базе можно только если это делает единый код на сервере.

Ed Doc
Серёг, вот открыл ты базу сторонним инструментом, ...

Зачем мне править базу сторонним инструментом? Я всегда встраиваю браузер-редактор базы в приложение, чтобы в продакшене под админом можно было посмотреть "под капот".

Sergey Bodrov
Зачем мне править базу сторонним инструментом? Я в...

Ну да, лучше взвалить функции сервера на клиента и думать ещё и об этом. 😊

Ed Doc
Ну да, лучше взвалить функции сервера на клиента и...

Генератор snowflake (и функция отображения его в виде времени и места) делаются один раз, а дальше все тупо работает. Проблемы могут быть только если системные часы назад прыгают, но и там вероятность попасть ровно в ту же миллисекунду очень мала.

Sergey Bodrov
Генератор snowflake (и функция отображения его в в...

Ни разу не понял, о чем ты. Видимо, что-то очень специфичное 😊

Sergey Bodrov
https://en.m.wikipedia.org/wiki/Snowflake_ID

Если я правильно понял, ты предлагаешь использовать сторонний компонент/инструмент вместо того, чтобы воспользоваться штатными механизмами сервера? Ты серьёзно? 😁

Ed Doc
Если я правильно понял, ты предлагаешь использоват...

Я предлагаю вместо штатного домкрата использовать подьемник. Но кто я такой, чтобы лишать людей удовольствия от преодоления трудностей.

Роман Лях (rgreat)
Генерить ключ не в базе можно только если это дела...

Я щас страшно выругаюсь матом, но... ...а execute block Или execute statement Можно протащить через ibx?

Arioch The
Я щас страшно выругаюсь матом, но... ...а execute...

Если вопрос ко мне, то ответ: без понятия. Я не работал с Interbase.

Роман Лях (rgreat)
Если вопрос ко мне, то ответ: без понятия. Я не ра...

...а, неправильно отмотал. Ну тогда к Игорю. Хочет в гамаке и стоя (ibx) - пусть экспериментирует. Вплоть до создания SP на один раз и сразу их удаления. Хотя в старых IB и IBX были как раз парные баги с мнoгократным вызовом SP. Может быть из ibx его потом убрали, или нет, не знаю. Но лучше взять дружественную к FB библиотеку, чем плыть против течения

Arioch The
...а, неправильно отмотал. Ну тогда к Игорю. Хочет...

Дим, ты щас вслух рассуждаешь или как? Чем тебе лазаревский ibx не потрафил?

Ed Doc
а что говорят исходники? :)

Что-то такое, что Firebird крадёт долю рынка interbase и должен быть уничтожен :-) Может быть с тех пор эмба с эменила политику, но мне перестало быть интересно бегать по граблям против течения :-) Поля типа boolean, ноуые команды типа merge или execute block для скриптовалки... Returning, опять же. Я упал с гамака и боюсь лезть обратно :)

Arioch The
Так он ibx2?

ibx4laz, если быть точнее В легаси он остался тем же добрым старым добрым ibx. Даже ibsql.close на месте :)))) По поводу всяких фигнюшек типа boolean полей и прочего, чета я по старинке кодирую их через smallint и не парюсь. Вот поддержка новых типов для FB4 и старше, наверное актуальна. Я пока серьезно даже доку не изучал. Походе надо ориентироваться уже на FB 5/6. Надеюсь, Вайман будет поддерживать свои ibx в актуальном состоянии

Михаил Усков
Можно, только если ParamCheck := false

Ну да, парсер отключить... В тексте запроса анонимные параметры сделать. И потом объекты параметров руками создавать... ...то есть шанс :-)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта