Имя: Пароль:
1C
1С v8
ODBC + PostgreSQL. Ошибка получения даты
0 PitNN
 
28.10.22
09:50
Добрый день, Коллеги. Просьба подсказать, кто сталкивался. Есть внешняя БД на postgresql. В таблице одно из полей имеет тип timestamp (пробовал тип date результат тот же). При чтении данных ADODB.Recordset из этой таблицы, когда доходит до чтения из поля с типом "дата" вываливается ошибка: "Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена."
В чем может быть причина?
1 Garykom
 
гуру
28.10.22
10:06
Причина в использовании устаревших уже не поддерживаемых реально технологий
2 PitNN
 
28.10.22
10:51
(1) Какую именно технологию вы считаете устаревшей?
3 Garykom
 
гуру
28.10.22
11:13
(2) ADODB и ODBC
4 Garykom
 
гуру
28.10.22
11:19
v8sqlite - нативная ВК для работы из 1С c базами  sqlite см там 21 пост
это то что предпочитаю в настоящее время использовать вместо устаревших технологий
5 NorthWind
 
28.10.22
11:47
(0) скорее всего кривая связка драйвера ODBC и OLE провайдера. Поищите другие варианты, например, подключитесь к ODBC драйверу через внешний источник данных 1С или попытайтесь поменять версию драйвера, если это возможно. Вообще OLEDB провайдеры достаточно капризная штука, особенно если речь идет не о Microsoftовских базах данных.
6 Garykom
 
гуру
28.10.22
11:51
(5) Не поможет.
Потом какое то другое поле встретится, например длинное BINARY или еще что и снова привет.
7 PitNN
 
28.10.22
11:52
(5) Замечена такая штука. Если в ячейке записана дата "0100-01-01 00:00:00.000", то при чтении из Recordset она определяется как 01.01.0001 (т.е. потерялись куда-то 100 лет)
Если в ячейке записана дата меньше "0100-01-01 00:00:00.000" (в том числе и "0001-01-01"), то это приводит к указанной выше ошибке.
Начиная с даты "0101-01-01 00:00:00.000" всё определяется корректно
8 PitNN
 
28.10.22
11:53
(4) Как это поможет подключиться, например к clickhouse?
9 Garykom
 
гуру
28.10.22
11:54
10 Garykom
 
гуру
28.10.22
11:54
(8) а какая нахрен разница то?
11 Garykom
 
гуру
28.10.22
11:55
12 Garykom
 
гуру
28.10.22
12:40
13 Garykom
 
гуру
28.10.22
13:15
(12)+ ну как работает psql.exe описанный в v8sqlite - нативная ВК для работы из 1С c базами  sqlite ?
14 PitNN
 
28.10.22
13:54
(13) Работа через запуск командного интерпретатора с последующим чтением файла ответа это, конечно, вариант. Спасибо за совет
15 ДедМорроз
 
28.10.22
17:43
Можно еще попробовать дату приводить к строке или числу в самом запросе.