Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 03:56   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Узнать ID (автоинкримент) до добавления записи

Народ подскажите, такую вещь.
Я добавляю запись, там всего 2 поля id_u и ural. Поле id_u в СУБД стоит "автоинкримент", я нажимаю кнопку "Внести" и хочу, чтобы выполнился запрос, и после того как он выполнится узнать id_u который вставился в таблицу, но лучше конечно до запроса:
Код:
DM.ADOQ_U.Close;
DM.ADOQ_U.SQL.Clear;
DM.ADOQ_U.SQL.Add('INSERT INTO ural (ural)');
DM.ADOQ_U.SQL.Add('VALUES  (:u);');
dm.ADOQ_U.Parameters.ParamByName('u').Value:=edit1.text;
DM.ADOQ_U.ExecSQL;
Вообщем нужно само число - поля id_u
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 09.04.2010, 05:09   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Хорошо

Код:
select id_u from ural where ural=' + QuotedStr(Edit1.Text);
Разве не так?

P.S. Не используйте одинаковое название поля в таблице и название самой таблицы.

P.P.S. Если Вам не принципиально важно как получать этот id_u, то можете кинуть на форму DBEdit и настроить его на поле id_u. Тогда при добавлении последней записи в DBEdit-e Вы увидите только что вставленный id_u.

P.P.P.S. Можете еще написать так (если используете DBEdit):
Код:
DataSource1.DataSet.Last;
Тогда указатель переместится на последнюю запись.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 09.04.2010 в 05:18.
artemavd вне форума Ответить с цитированием
Старый 09.04.2010, 07:28   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Зависит от СУБД. В MS Access нужно выполнить такой запрос:
Код:
select @@identity;
он вернёт последний сгенерированный идентификатор.
Ну и это только после вставки записи можно определить. До - невозможно. Разве что ручками генерацию делать.
Ну и если СУБД другая, то там и другие возможности и методы будут. В Interbase/Firebird вообще с этим проблем нет.
pu4koff вне форума Ответить с цитированием
Старый 09.04.2010, 09:52   #4
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Чет не катит ничего... у меня СУБД MySQL. Есть еще варианты ?
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержка добавления записи в базу Access из Dephi Zver БД в Delphi 11 16.05.2011 17:57
ошибка при запросе добавления Rin БД в Delphi 4 26.12.2009 01:41
Лидеры добавления новостей Vladya HTML и CSS 1 08.09.2009 13:25
Как узнать программно скорость чтения и записи на жесткий диск. начинающий кодер Общие вопросы Delphi 7 05.03.2009 16:13
добавления в готовую таблицу Strelka Microsoft Office Excel 1 09.03.2007 17:27