Автоматическая генерация ID (Код) в Access на Delphi

Буквально пару дней назад столкнулся с такой проблемой, что при вставке новых записей в таблицу, несмотря на то, что поле объявлено как счётчик, является идентификатором, первичный ключ (primary key) так называемый ID или идентификатор, не работает вернее, на делает того что нужно, когда мы делаем запрос на вставку новой записи. Как это решается:
Объявляем переменную целого типа? например:
у нас есть таблица Users
в ней есть поля ID, Login, Password
Кидаем на форму компонент ADOQuery, устанавливаем связи и так далее, чтобы можно было выполнять запросы (смотрим в блоге, по меткам…)
var
MyID: Integer;

и далее пишем там где собираемся использовать запрос на вставку

ADOQuery1.Active:=False;
ADOQuery1.SQL.Text:='Select ID from Users';
ADOQuery1.ExecSQL;

Теперь нам нужно передвинуть курсор на последнюю запись:
ADOQuery1.Last;

И теперь получаем наш новый ID
MyID:=1+StrToInt(ADOQuery1.FieldByName('ID').AsString);

А вот уже теперь, мы можем использовать нашу переменную, для вставки ID
ADOQuery1.Active:=False;ADOQuery1.SQL.Text:='Insert InTo Users (ID, Login, Password) VALUES('+
IntToStr(MyID)+','+
QuotedStr('Логин нового пользователя')+','+
QuotedStr('Новый пароль')+')';ADOQuery1.ExecSQL;

 

Вот собственно и всё…


Присоединяйтесь к моему телеграмм каналу

Читайте еще один блог о путешествиях

Подписывайтесь на мой YouTube канал

Добавить комментарий

Войти с помощью: 

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.