|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2015, 23:40 | #1 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Проще получать id нововставленной строки не передергивая DataSet
Доброе время суток уважаемые.
Можно ли как-нибудь проще видеть id нововставленной строки в DataSet (DBGrid), без его переоткрытия, используя например «RETURNING» и sql-ю «GEN_ID» или что-нибудь в этом роде Сейчас у меня работает таким образом: Перед вносом записи непосредственно в БД я обращаяюсь к внутренней процедуре (в которой, входной параметр - это номер таблицы в БД), которая мне возвращает актуальное новое ID, определенного генератора ID, определенной таблицы Код:
Заранее спасибо P.S. - Процедура "GetGenID" (TIBStoredProc), - работает с внутренней процедурой в БД, которая только генерирует ID - Delphi + FireBird 2.5.4 Последний раз редактировалось KBO; 13.11.2015 в 01:19. |
13.11.2015, 09:01 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Руководство по языку SQL СУБД Firebird
(Охватывает Firebird до версии 2.5.3 включительно) Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
13.11.2015, 13:49 | #3 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,770
|
Можно еще поискать по слову returning на форуме. В какой-то из тем я даже отвечал.
|
13.11.2015, 18:10 | #4 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
такая штука:
в IBExpert пытаюсь выполнить вставку (без нижней строки все работает): Код:
"Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 5, column 19. ?. " Последний раз редактировалось KBO; 13.11.2015 в 18:32. |
13.11.2015, 18:51 | #5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Ну и в чем затруднения? вам же пишут эксперт не в зуб ногой что такое :ID..
|
13.11.2015, 18:53 | #6 | |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Цитата:
Код:
пардон, вот я в свойстве "InsertSQL" (DataSet), указал предущий запрос, но мне же нужно тогда куда-то принять значение "ID". Это тогда мне нужно вычисляемое поле сделать в DataSet? иначе DataSet, тоже также ругается Последний раз редактировалось Stilet; 13.11.2015 в 20:44. |
|
13.11.2015, 19:35 | #7 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Параметр, как указали вам в начале.
|
14.11.2015, 02:54 | #8 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Если вот так как вверху (может я и не прав), то
Код:
может я не правильно выразился в первом сообщении, я хочу не просто вернуть ID нововставленной строки, но еще и вставить его в DataSet. Чтоб его видел пользователь. Но даже если я его верну, то не смогу его вставить в DataSet, т.к. генератор (в БД) изменяет свое значение, только после BeforePost Последний раз редактировалось Stilet; 14.11.2015 в 17:24. |
14.11.2015, 14:38 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А пользователю это id сто лет не нужно. Суррогатный ключ зачем ему видеть?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
14.11.2015, 14:53 | #10 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Дело в том что это таблица в которую я вставляю запись, точнее к этой записи (после ее вставки), у меня можно прицепить к ней картинки (которые у меня хранятся в отдельной таблице).
Так вот я не разрешаю цеплять к записи картинки, пока у записи не появится ID (поле Dataset пустое) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно просто узнать «id» следующей строки в DataSet | KBO | Помощь студентам | 2 | 09.09.2015 20:06 |
Удаление строки из Dataset | Grers | Общие вопросы Delphi | 7 | 03.04.2015 15:10 |
Добавление строки в существующий DataSet | Kveldulv | Общие вопросы .NET | 2 | 20.01.2011 10:11 |
Нужно найти ошибку или написать алгоритм по проще! (строки) | velamut | Помощь студентам | 3 | 18.06.2010 16:09 |
Тоже задача на строки. Тока проще. | maxiswell | Помощь студентам | 7 | 28.12.2008 13:42 |