Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Исключение пропусков в колонке таблицы MySQL

Ответить
Настройки темы
Delphi - Исключение пропусков в колонке таблицы MySQL

Пользователь


Сообщения: 63
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Satir4ik
Дата: 25-11-2015
Здравствуйте! У меня есть простое приложение для хранения заказов на предприятии. Сделано на делфи с использованием ADO. Состоит из 4 форм: 1 - основная, 2 - добавить запись, 3 - редактировать запись, 4 - подтверждение удаления записи. Работать должно с 1-4 пользователями. Решил не разделять по пользователях, а сделать доступ из под 1 пользователя MySQL. Суть вопроса - когда пользователи (2 или 3) одновременно хотят добавить запись приложение для каждого при нажатии на кнопку создает запись в которую потом удаляет и заменяет по нажатию кнопки добавления уже на другой форме, но в случае когда один или несколько пользователей отменяют добавление записи в нумерации заказов получается пропуск по цифрах. Вопрос - как сделать, чтобы приложение само узнавало максимальное значение в колонке БД и добавляло к нему 1?

Как я вижу решение проблемы. При переходе на вторую форму (клик по bitbtn) приложение делает
Код: Выделить весь код
Form1.ADOQuery1.Last; 
x:=Form1.ADOQuery1.FieldValues['nomer']; //x:integer
Edit1.Text:=IntToStr(x);
после чего когда пользователь ввёл нужные данные, кроме номера заказа соответственно, нажимает на кнопку добавления. Затем приложение должно делать что-то подобное
Код: Выделить весь код
Form1.ADOQuery1.Prior;
y:=Form1.ADOQuery1.FieldValues['nomer']; //y:integer
Form1.ADOQuery1.Last;
//далее делает проверку значений
if x<>y then begin
Form1.ADOQuery1.Delete;
Form1.ADOQuery1.Insert;
Form1.ADOQuery1.FieldByName('nomer').AsInteger:=y;
//добавление значений всех полей
Form1.ADOQuery1.Post;
end else begin
Form1.ADOQuery1.Delete;
Form1.ADOQuery1.Insert;
Form1.ADOQuery1.FieldByName('nomer').AsInteger:=x;
//добавление значений всех полей
Form1.ADOQuery1.Post;
end;
Но почему-то так не получается. Возможно, нужно добавить что-то типа обновления ADOQuery, для получения последнего состояния данных в таблице? Подскажите как прописать это правильно?

Отправлено: 20:37, 25-11-2015

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Исключение пропусков в колонке таблицы MySQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Выборка данных из таблицы mysql vinbongun Вебмастеру 7 14-08-2013 06:23
MySQL - Выборка данных из таблицы mysql vinbongun Программирование и базы данных 0 11-08-2013 09:10
MySQL - [решено] отображение таблицы в Mysql TigerZaka Программирование и базы данных 2 21-08-2008 22:00
MySQL - большие таблицы XCodeR Вебмастеру 4 28-08-2005 11:40
Удаление записей из таблицы MySQL unknown Вебмастеру 3 21-05-2003 14:54




 
Переход