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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2008, 09:54   #1
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию проблема с запросом и делфи

я создаю проект в делфи который связывается с субэйс через адо. есть запрос
SELECT Cold_Home_pressure,dt
FROM "SRC"."ar_ctp01"
where stationId=1
group by dt,stationId,Cold_Home_pressure
having dt>'2008-10-20 08:00:00.001' and dt<'2008-10-20 08:26:00.001'
order by dt asc

в субэйс он выдает такие результаты (2 столбца: первый - параметр второй-время):
'1,223' '2008-10-20 08:00:00.001'
'1,553' '2008-10-20 08:05:00.001'
'2,67' '2008-10-20 08:10:00.001'
'1,283' '2008-10-20 08:15:00.001'
'1,298' '2008-10-20 08:20:00.001'
'1,453' '2008-10-20 08:25:00.001'

то есть обновление в бд каждые 5 минут

а в делфи использую в квери такой же запрос он выдает следующее в гриде:
'1,223' '2008-10-20 07:50:00.001'
'1,553' '2008-10-20 07:50:00.001'
'2,67' '2008-10-20 07:50:00.001'
'1,283' '2008-10-20 07:50:00.001'
'1,298' '2008-10-20 07:50:00.001'
'1,453' '2008-10-20 07:50:00.001'

то есть одно и то же время не включенное в диапазон запроса.в чем проблема?подскажите

Последний раз редактировалось student90; 21.10.2008 в 10:01.
student90 вне форума Ответить с цитированием
Старый 21.10.2008, 17:37   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Может, все жe
where stationId=1 and dt between...
group by dt,stationId,Cold_Home_pressure
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 10:42   #3
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

через between тоже не идет. делаю так - where stationId=1 and dt between...
group by dt,stationId,Cold_Home_pressure и пишет что возникает ошибка в многошаговой обработке.
student90 вне форума Ответить с цитированием
Старый 22.10.2008, 10:54   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да вы не стесняйтесь теперь-то уже...
Приведите полный текст запроса.
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 10:59   #5
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

я же в начале написал) SELECT Cold_Home_pressure,dt
FROM "SRC"."ar_ctp01"
where stationId=1
group by dt,stationId,Cold_Home_pressure
having dt>'2008-10-20 08:00:00.001' and dt<'2008-10-20 08:26:00.001'
order by dt asc
student90 вне форума Ответить с цитированием
Старый 22.10.2008, 11:08   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Не понял... А где BETWEEN?
group by и order by в одном запросе? В высшей степени оригинально! Они несовместимы.
Вы бы хоть какую книжку по SQL с форума скачали... А то дальше еще труднее будет... методом тыка...
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 11:24   #7
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

да я знаю что я тупой студент
извиняюсь за некорректность.
SELECT Cold_Home_pressure,dt
FROM "SRC"."ar_ctp01"
where stationId=1 and dt between '2008-10-20 08:00:00.001' and '2008-10-20 08:26:00.001'
group by dt,stationId,Cold_Home_pressure
вот он.ошибки нет.но выводит также-'2,67' '2008-10-20 07:50:00.001'
'1,283' '2008-10-20 07:50:00.001'
'1,298' '2008-10-20 07:50:00.001'
'1,453' '2008-10-20 07:50:00.001'
student90 вне форума Ответить с цитированием
Старый 22.10.2008, 12:04   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Странно. А что, в сибэйс нужно источник данных (имя таблицы) заковычивать?
И по правилам синтаксиса SQL выражение после BETWEEN желательно заключать в скобки. Попробуйте.
mihali4 вне форума Ответить с цитированием
Старый 29.10.2008, 11:08   #9
student90
Пользователь
 
Регистрация: 15.09.2008
Сообщений: 38
По умолчанию

все равно даже пробую как вы советуете все равно не идет.
делаю так
SELECT Cold_Home_pressure,dt
FROM SRC.ar_ctp01
where stationId=1 and dt between ('2008-10-20 08:00:00.001' and '2008-10-20 08:26:00.001')
group by dt,stationId,Cold_Home_pressure
выдает что синтаксическая ошиька около and
и делаю так
SELECT Cold_Home_pressure,dt
FROM SRC.ar_ctp01
where stationId=1 and dt between ('2008-10-20 08:00:00.001' and '2008-10-20 08:26:00.001')
чисто пустые поля
а может быть такое что столбцы не совпадают из делфи и субэйс?
в субэйс столбец формата datetime (пример '2008-10-20 08:00:00.001') а в делфи помоему такого нет.может просто формат времени другой?

Последний раз редактировалось student90; 29.10.2008 в 12:30.
student90 вне форума Ответить с цитированием
Старый 02.11.2008, 19:29   #10
uraura
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 87
По умолчанию

а может так
between '2008-10-20 08:00:00.001' and '2008-10-20 08:26:00.001'
хотя могу ошибаться
uraura вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с SQL-запросом в связанных таблицах kopernik21187 Общие вопросы Delphi 5 16.09.2008 10:33
Проблема с делфи и plug-in Sichersa Помощь студентам 1 24.07.2008 20:55
Проблема с sql в делфи spiteful41 Помощь студентам 4 27.05.2008 01:23
Проблема с SQL Запросом Worms БД в Delphi 7 13.01.2008 23:09
[Microsoft][Драйвер ODBC dBase] Дата содержит синтаксическую ошибку в выражении запроса '#FNAIM_SH' Jon_1981 БД в Delphi 1 11.06.2007 10:20