Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

помогите с sql   Найти похожие ветки 

 
viper03 ©   (2006-11-02 05:05) [0]

пытаюсь написать запрос:
("Select * ");
("From sc316 T, rg631 R");
("Where (r.sp625>0) and (t.id=r.sp622) and (R.period="01.11.2006")");
                                                                   ^----- вот здесь ругается Operator/operand type mismatch.
поле period имеет тип "Дата".  
в чем ошибка?


 
viper03 ©   (2006-11-02 06:47) [1]

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


 
Loginov Dmitry ©   (2006-11-02 07:35) [2]

А если полностью написать:
R.period="01.11.2006 00:00:00" че будет?
Тоже самое?
:)


 
pavel_guzhanov ©   (2006-11-02 08:44) [3]


> А если явно указать - несоответствие типов. почему?


Потому что ты значение поля с типом Date пытаешься сравнить со строкой


 
Percent   (2006-11-02 08:58) [4]

Не указана СУБД.

сделал через параметр - работает.

Параметры для этого и предназначены. Используй параметры. Использование строчного представления даты - только тогда, когда ты четко понимаешь, зачем это надо.

Потому что ты значение поля с типом Date пытаешься сравнить со строкой

Если дату предоставить во вменяемом строчном формате, СУБД сама преобразует строку в дату. Большинство СУБД используют системные настройки формата даты. В вопросе автора, скорее всего, формат даты не соответствует локальному формату, поэтому СУБД и ругается на "несоответствие типов" - она (СУБД) просто не понимает, что ей передана передана, типа, дата в строчном формате.

А мне вот любопытно, sc316, rg631, sp625, sp622 - это что, такого добра (таблиц и полей в них) в БД - сотни?


 
viper03 ©   (2006-11-02 12:43) [5]

работаю через АДО.
субд - видимо фокспро. потому как пришлось специально драйвер качать.
вот в каком формате дата хранится...
если смотреть ДБВьювером - 01.11.2006
если просто фарменеджером - 20061101
если честно - я все перепробовал. на все ругается несоответствие типов.

база адинэсовская... таблиц таб действительно пара сотен. А имена полям адинэс присваивает.


 
Percent   (2006-11-02 12:46) [6]

база адинэсовская... таблиц таб действительно пара сотен. А имена полям адинэс присваивает.

Мой тебе совет - не работай с БД 1С напрямую.


 
viper03 ©   (2006-11-02 12:55) [7]

:-) я начальству еще лучший совет давал - вообще не работать с 1с. не поверили... :-(
может и второй совет дашь? как с 1с работать?


 
Desdechado ©   (2006-11-02 12:57) [8]

> вот в каком формате дата хранится...
> если смотреть ДБВьювером - 01.11.2006
> если просто фарменеджером - 20061101
Дата может храниться в каком угодно виде, хоть в количестве секунд от рождества Билла или Ларри. И смотрелки тебе этого не покажут, ибо они показывают в формате, ими любимом.
Так что используй параметры,  их для того и придумали.

> Большинство СУБД используют системные настройки формата даты.
Вот только часто остается за кадром вопрос, какой именно системы - ОС клиента или ОС сервера. Драйвер на клиенте может преобразовать, а может и отдать на откуп СУБД в исходном виде. И если форматы дат на клиенте и сервере разные, то будет бумс (причем либо явная ошибка, либо "тихая" - 01.10.2005 можно яноварем и октябрем датировать). Я уж не говорю, что возможна попытка учета часовых поясов и их разницы между клиентской и серверной машинами.


 
Percent   (2006-11-02 12:58) [9]

может и второй совет дашь? как с 1с работать?

Если мне не изменяет память, 1С может работать в качестве OLE-сервера.


 
viper03 ©   (2006-11-02 13:01) [10]

может. пробовал. но когда простенький запрос выполняется порядка 15-20 секунд - это уже не смешно.


 
Anatoly Podgoretsky ©   (2006-11-02 13:28) [11]

> viper03  (02.11.2006 13:01:10)  [10]

Уменьше размеры таблиц до нескольких десятков



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
1-1159865750
Sham
2006-10-03 12:55
2006.11.19
Проблема с типами данных


15-1162145285
ArtemESC
2006-10-29 21:08
2006.11.19
Серенада солнечной долины...


2-1162267874
viper03
2006-10-31 07:11
2006.11.19
Как извлечь объект из ЛистБокса?


3-1158496273
linox
2006-09-17 16:31
2006.11.19
автоматическая нумерация поля Number


15-1162444291
Slider007
2006-11-02 08:11
2006.11.19
С днем рождения ! 2 ноября