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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 04:00   #1
Absinth
Пользователь
 
Аватар для Absinth
 
Регистрация: 11.11.2008
Сообщений: 16
Восклицание DataTimePicker и База данных

Всем доброго времени суток...
Помогите пожалуйста...
В базу данных происходит добавление нового путевого листа. Вводим дату, автомобиль, водителя, заказчика. Все работает. Хочу сделать добавление 1 автомобиля на сегодня, т.е. на 1 дату - 1 автомобиль. Пытался сделать с помощью While, но не получилось...
Писал так:
Код:
While (not adotable1.eof) do
begin
 if (adotable1.fieldValues['data']=label2.Caption) and 
(ADOTable2.FieldValues['Marka']=DBLookupComboBox1.Text)
then ShowMessage('На этот автомобиль уже есть путевой лист') 
else
begin
действия по добавлению 
end;
end;
adotable1 - это таблица путевого листа
adotable2 - это таблица с автомобилями

Но этот код не работает...
Как мне сделать проверку по дате и авто.
Если дата уже есть и автомобиль уже есть то должно быть сообщение...
Заранее спасибо)

Немного разобрался, но все равно работает не так...
Перед While поставил AdoTable1.first;
Внутри поставил AdoTable1.next;
Не рой другому яму - пусть сам роет.

Последний раз редактировалось Stilet; 27.06.2011 в 13:53.
Absinth вне форума Ответить с цитированием
Старый 27.06.2011, 08:13   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

А почему бы не попробовать сделать SQL запрос а не гонять всё по циклам!?
...и на счёт этой строки
Код:
if (adotable1.fieldValues['data']=label2.Caption)
так не будет работать.

так попробуйте, но проще SQL!!!
Код:
if (adotable1.FieldByName('data').asString=label2.Caption)
но учтите что форма записи даты в лэйбеле и в БД должны быть одинаковыми, если будет такое сравнение: if 27.06.2011 = 27.06.11 то условие никогда не выполнится хоть даты и одинаковые т. к. сравниваете вы уже строки а не даты

Последний раз редактировалось SERG1980; 27.06.2011 в 08:20.
SERG1980 вне форума Ответить с цитированием
Старый 27.06.2011, 08:24   #3
Absinth
Пользователь
 
Аватар для Absinth
 
Регистрация: 11.11.2008
Сообщений: 16
По умолчанию

Этот код if (adotable1.fieldValues['data']=label2.Caption) будет работать так же, как и ваш... Я бы даже сказал, что лучше так писать, чем if (adotable1.FieldByName('data').asSt ring=label2.Caption).

А про SQL запросы я немного не понял. Как мне сделать при добавлении проверку через SQL?
Не рой другому яму - пусть сам роет.
Absinth вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataTimePicker Spaun Помощь студентам 0 23.06.2010 12:48
Небольшая база в Open Office База данных. sashaman Фриланс 3 11.04.2010 20:13
SQL and DataTimePicker Lord777 Общие вопросы Delphi 8 06.01.2010 02:02
База данных с возможностью приема данных из файлов Excel Al_Sha БД в Delphi 6 16.10.2009 15:34
Занесение значения DataTimePicker в базу inret Общие вопросы Delphi 3 09.05.2008 15:21