![]() |
![]() |
![]() |
|
Работа с Timestamp ₽ |
☑ | ||
---|---|---|---|---|
0
Minilaus
07.02.07
✎
10:56
|
Значит обращаюсь к внешней базе Paradox, мне нужно ограничить выборку датой, но не знаю как установить параметр из 1с, чтобы он нормально заработал с TimeStamp. Делаю следующее:
Запрос = СоздатьОбъект("ODBCRecordSet"); Запрос.SetDatabase(БД); ТекстЗапроса = " |SELECT MessageDate FROM Traffic |Where MessageDate>? |"; Запрос.Подготовить(ТекстЗапроса); Запрос.ДобПараметр(1,10,Дата("05.02.2007"),0); Запрос.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1); При выполнении выдает такую ошибку: Запрос.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1); {Обработка.ЗагрузкаТрафика.Форма.Модуль(25)}: State 22007, native 35, message [Microsoft][Драйвер ODBC Paradox]Недопустимый формат поля даты и времени (null) |
|||
1
Морозов Александр
07.02.07
✎
11:00
|
мож типа 2-у дату надо поставить
|
|||
2
Minilaus
07.02.07
✎
11:05
|
Не понял
|
|||
3
ATI
07.02.07
✎
11:16
|
1. Напрямую в запрос втыкай, не параметром
2. Играйся с форматами типа так .. 05/02/2007 точно не помню. 3. Оптимальный вариант - переконверт из Paradox в dBase, и работай как душе угодно |
|||
4
Minilaus
07.02.07
✎
11:19
|
Переконверт будет долго, база большая :( (для этого и ставлю условию в SQL, хотя можно и потом проверочкой). Ща попробую форматы пошурудить
|
|||
5
smaharbA
07.02.07
✎
11:22
|
Запрос.ДобПараметр(1,10,"05.02.2007",0);
|
|||
6
Minilaus
07.02.07
✎
11:28
|
Блин никак не хочет
|
|||
7
smaharbA
07.02.07
✎
11:49
|
или
|
|||
8
Minilaus
07.02.07
✎
11:55
|
На первый вариант ругаетсо гаденыш:
Запрос.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1); {Обработка.ЗагрузкаТрафика.Форма.Модуль(28)}: State 42000, native 4294964196, message [Microsoft][Драйвер ODBC Paradox] Ошибка синтаксиса (пропущен оператор) в выражении запроса 'MessageDate>cast(Pa_RaM000 as datetime)'. А второй вариант, говорит что типы не совместимы |
|||
9
smaharbA
07.02.07
✎
12:07
|
MessageDate>convert(datetime,?)
|
|||
10
Minilaus
07.02.07
✎
12:08
|
И так тоже пробовал :) уже выдает о несовместимости :(
|
|||
11
Minilaus
07.02.07
✎
12:08
|
и че у меня все сообщения по 2 раза идут
|
|||
12
smaharbA
07.02.07
✎
12:12
|
Дат="05.02.2007";
ТекстЗапроса = " |SELECT MessageDate FROM Traffic |Where MessageDate>convert(datetime,'"+Дат+"') |"; либо MessageDate не дата |
|||
13
Minilaus
07.02.07
✎
12:22
|
Ваще смех да и только. Теперь ругается, что он не знает функцию convert. Хотя если указать вот так
ТекстЗапроса = " |SELECT MessageDate FROM Traffic |Where MessageDate>convert(datetime,?) |"; Запрос.Подготовить(ТекстЗапроса); Запрос.ДобПараметр(1,10,Дата("05.02.2007"),0); То ругается опять на не совместимость типов (то есть получается тут он уже знает функцию convert) А тип у MessageDate TimeStamp. Ладно чуствую легче проверкой условия потом делать |
|||
14
romix
модератор
07.02.07
✎
12:29
|
|
|||
15
romix
модератор
07.02.07
✎
12:30
|
Уточни только формат даты который принимает Парадокс.
|
|||
16
smaharbA
07.02.07
✎
15:55
|
блин
|
|||
17
Билли Г
07.02.07
✎
15:57
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |