Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

Несоответствие типов данных в выражении условия отбора   Найти похожие ветки 

 
Deedlit   (2003-06-29 11:29) [0]

Запрос базе данных MS Access возвращает сообщение "Несоответствие типов данных в выражении условия отбора". SQL запрос: SELECT * FROM MainBook WHERE (Birthday BETWEEN "01.01.2000" AND "01.01.2000") Связь с базой организована через ADO, драйвер - Microsoft Jet 4.0 OLE DB Provider.

Т.е. я пытаюсь получить поля по диапазону дат рождения людей. :( Именно что пытаюсь. :( Может, для ADO другой синтаксис нужен? В BDE все работало...


 
Anatoly Podgoretsky   (2003-06-29 11:31) [1]

Оно не считает, что это даты, а как указывать литералы типа дат описано в справке по движку, у каждого свой формат. Справка есть в составе Офиса и на сайте Микрософт.


 
Deedlit   (2003-06-29 11:52) [2]


> Anatoly Podgoretsky

Можно, если нетрудно, конкретнее - где это там искать? Я в этой области совсем начинающая... :( И как вообще еще можно указать дату? Разделители другие?



 
Anatoly Podgoretsky   (2003-06-29 15:23) [3]

А начать с того, что определить какой движок используется и искать в документации на него. Если это АДО и JET то в документации на Акцесс, справка в папке МС ОФИС, но это я уже ранее указал, там искать соответствуюзую тему.
Ты сам поищешь или как?


 
Deedlit   (2003-06-29 16:09) [4]


> А начать с того, что определить какой движок используется
> и искать в документации на него.
> ...
> Ты сам поищешь или как?

Не сердись, говорю же - не работала я с БД раньше. :( Движок в данном случае - это Microsoft Jet 4.0 OLE DB Provider? В хелпе к офису про него ни слова. Есть раздел касательно типов ADO, там про DateTime написано "Date and time values for the years 100 through 9999." Длина 8 байт. Чего ему нехватает?


 
sniknik   (2003-06-29 17:23) [5]

для "Microsoft Jet 4.0 OLE DB Provider" есть файл справки JETSQL40.CHM поставляется с офисом, и в нем гораздо больше чем "ни слова", просто его надо было поставить (при установке офиса не убирать галочку устанавливать на хелпах).


 
Deedlit   (2003-06-29 17:44) [6]


> sniknik ©

Я и не убирала. Ставила Word, Excel и Access, полным комплектом, MSOffice 2000. Файла НЕТ. Рискую нарваться на щелчок по носу :), но вы мне не кинете его на мыло? Очень уж хочется разобраться, что этой заразе от меня нужно. :(


 
Deedlit   (2003-06-29 17:45) [7]

Уй! deedlit@land.ru Прошу прощения.


 
Anatoly Podgoretsky   (2003-06-29 18:04) [8]

C:\Program Files\Microsoft Office\Office\1049
У меня он в этой папке


 
Deedlit   (2003-06-29 18:38) [9]

Только что со злости поставила вообще все комплекты справки, что с Офисом шли. Те же яйца, только в профиль. :( В смысле, нет файла... В общем, либо лыжи не смазаны, либо я... гм...


 
app   (2003-06-29 19:52) [10]

Попробуй сделать поиск JETSQL40.CHM по всему диску. Может не там ищешь.


 
sniknik   (2003-06-29 19:53) [11]

у меня в этих
D:\Program Files\Common Files\Microsoft Shared\Office10\1033
D:\Program Files\Common Files\Microsoft Shared\Office10\1049
от разных установок

в старом может немного иначе называтся, вроде этого JETSQL35.CHM (возможно неточно). и потом какой офис ставиш? точно есть в 2000м/XP и главное нерезанном пиратами. (насчет 97/95 ??? хз)

в общем полный архив справки 3.1мб, только файл 262кб его и высылаю. (гарантий что чегото нехватает само по себе дать не могу, найди полную установку офиса)


 
Anatoly Podgoretsky   (2003-06-29 20:02) [12]

Краткая выписка по датам

При указании аргумента условиеОтбора литералы даты (символы дат) должны вводиться в американском формате, даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.96, а в США как 5/10/96. Обязательно заключите даты в символы «решетки» (#), как показано в следующих примерах.

Для отбора записей с этой датой в российской базе данных необходимо использовать следующую инструкцию SQL:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = #5/10/96#;


Кроме того, можно применять функцию DateValue, которая поддерживает международные стандарты, заданные в Microsoft Windows®. Например, для отбора записей в американской базе данных создайте текст программы:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue("5/10/96");


Для российской базы данных текст программы будет выглядеть так:

SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue("10.5.96");




 
Deedlit   (2003-06-29 20:58) [13]

Угу, уже все нашла в JETSQL40, огромное спасибо за него sniknik"у. Правда, в качестве инструкции обнаружилось лишь упоминание, что длина поля даты составляет 8 байт и может быть от 100 до 9999 лет. В общем, успела натереть веревку мылом :) , пока не наткнулась на пример программы в том же разделе.

Исходный запрос в итоге стал выглядеть вот так: (Birthday BETWEEN #01/01/00# AND #01/01/00#)".

Еще раз спасибо уважаемым Анатолию и sniknik"у за потраченное на мою скромную персону время. (делает почтительный книксен)

:)



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

Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
9-67651
pifpaf
2003-01-30 13:10
2003.07.21
Импорт объекта с анимацией в GLScene.


14-68019
Sergio_nnm
2003-07-04 03:14
2003.07.21
TOOLBAR


11-67747
SPeller
2002-11-17 13:36
2003.07.21
DesignTime отрисовка


1-67757
Smok_er
2003-07-08 19:49
2003.07.21
ComboBox, выпадающий наверх


3-67706
Sodom
2003-06-27 11:12
2003.07.21
Ускорение работы с базой.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский