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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 15:30   #1
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию Delphi -> ADO -> Access, запрос с условием

Пишу прогу на Delphi, база в Access.
Составляю запрос в Access, в котором есть вычисляемое поле, которое должно отображать разность двух других полей запроса. Этот запрос вывожу в DBGrid.
Ну и собственно вопрос: как сделать так, чтобы если это вычисляемое поле больше нуля, то выводилась разница двух других полей, а если получается отрицательное число, то в этом поле выводился ноль?
-MagicAlex- вне форума Ответить с цитированием
Старый 07.06.2010, 15:46   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
SELECT qq.[pole1], qq.[pole2], qq.[pole3],  iif((qq.[pole4]- qq.[pole5]<=0),0,qq.[pole6]- qq.[pole7]) as pole 
FROM Table1 as qq
vovk вне форума Ответить с цитированием
Старый 07.06.2010, 16:02   #3
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

To vovk
Спасибо огромное!

Еще вопрос нарисовался...
База и прога те же, то есть делфи + аксес

В таблице есть поля с датой заказа и датой исполнения заказа, мне надо изменить дату исполнения заказа, сдвинув ее на 5 дней вперед относительно даты заказа:

Код:
UPDATE orders SET plan_date=(order_date + INTERVAL 5 DAYS) WHERE order_id=25
Но аксес почему-то ругается, вылетает ошибка:
"Ошибка синтаксиса, пропущен оператор в выражении (order_date + INTERVAL 5 DAYS)"

Хотя синтаксис по моему правильный...

Последний раз редактировалось Stilet; 08.06.2010 в 13:55.
-MagicAlex- вне форума Ответить с цитированием
Старый 07.06.2010, 22:14   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
UPDATE orders SET plan_date=order_date + 5 WHERE order_id=25
vovk вне форума Ответить с цитированием
Старый 07.06.2010, 22:22   #5
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Код:
UPDATE orders SET plan_date=order_date + 5 WHERE order_id=25
Теперь на синтаксис не ругается, но все равно не работает почему-то...
-MagicAlex- вне форума Ответить с цитированием
Старый 07.06.2010, 22:40   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

А что не срабатывает?
Код:
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:='UPDATE orders SET plan_date=order_date + 5 WHERE order_id = 25';
ADOQuery1.ExecSQL;
end;
так всё должно работать, если значение поля order_date не пустое тоесть <> null
vovk вне форума Ответить с цитированием
Старый 07.06.2010, 22:56   #7
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

Все заработало, написал запрос с помощью функции DATEADD
-MagicAlex- вне форума Ответить с цитированием
Старый 08.06.2010, 12:14   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

странно что не работало просто +5, там как я помню отсчёт в днях ведётся. А Access какой?

Последний раз редактировалось vovk; 08.06.2010 в 13:00.
vovk вне форума Ответить с цитированием
Старый 10.06.2010, 05:56   #9
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

To vovk
Сама БД в формате .mdb, но офис 2007 стоит
-MagicAlex- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access+delphi+ado aid_013 БД в Delphi 2 10.07.2010 09:28
Delphi+Ado+Access kmvteam БД в Delphi 26 09.07.2010 02:08
delphi+ado+access Jo2000 Помощь студентам 16 27.02.2010 08:04
Delphi <--> ADO <--> Access acid02 БД в Delphi 4 09.04.2009 16:29
Delphi+ADO+Access Turpa Помощь студентам 12 15.10.2007 23:29