Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.03.2009, 14:52
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию помогите.. с очередью

Всем привет!!!
Делаю малюсенькую бд (акесс) в ней будет вестись очередь на поступление в садик. В ней есть таблица (главная) в ней 4 столбца (первый "кеу", тип счетчик и является ключевым полем) и (три остальных "фамилия", "имя", "сад", типы текстовые). При добавлении новой записи она будет будет добавлятся в конец таблицы и отображатся в низу DBGridEh. А что делать если чел который будет забивать данные пропустит одного ребенка и спохватится когда забьет данные скажем 200 человек хотя пропущенный ребенок должен быть 10 в списке. Помогите пожалуйста очень нужно.
Ответить с цитированием
  #2  
Старый 06.03.2009, 15:17
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Добавь еще одно поле, в котором и будешь держать порядок очереди. Сделай так чтобы оно заполнялось автоматически, а если понадобиться поменять местами 2-х человек, то это нужно сделать как бы отдельной опцией.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 07.03.2009, 19:40
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Aristarh Dark, добавил еще одно поле (rnomer, тип поля текс) поле заполняется автоматом
Код:
Form1.ADOTable1.FieldValues['rnomer']:=IntToStr((form1.DBGridEh1.RowCount)-1);
а дальше ............... не знаю. помоги пожалуйста
Ответить с цитированием
  #4  
Старый 07.03.2009, 21:33
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

На самом деле тебе нужно запросом вычислять максимальное значение этого поля и делать новое поле на +1 ... а когда тебе будет нужно сменить порядок то:
Код:
var
n:string;

n:=Edit1.Text;
Table1.Edit;
Table1.Locate(n,'rnomer',[]);
Table1.FieldByName('rnomer').AsString:=n+'_';
Table1.Post;

Table1.Locate(n,'rnomer',[]);
Table1.First;
while not Table1.Eof do
begin
Table1.Edit;
Table1.FieldByName('rnomer').AsString:=IntToStr(StrToInt(Table1.FieldByName('rnomer').AsString)+1);
Table1.Post;
Table1.Next;
end;

Table1.Locate(n+'_','rnomer',[]);
Table1.Edit;
Table1.FieldByName('rnomer').AsString:=n;
Table1.Post;

... примерно так
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 10.03.2009 в 20:32.
Ответить с цитированием
  #5  
Старый 08.03.2009, 15:25
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

При вставке в середину (например в позицию 5) думаю пригодился бы SQL
Код:
UPDATE tablename SET rnomer = rnomer + 1 WHERE rnomer >= 5;
Ответить с цитированием
  #6  
Старый 09.03.2009, 22:28
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Yurk@, я так понял твой код должен менять номер каждой записи

s0Creator, у меня делфи выдает ошибку "несоответствие типов данных в выражении условия отбора"

и еще вопросик а можно строку в DBGridEh сдвинуть вверх или в низ ???
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:50.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter