|   |   | 
| 
 | 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 | 
        https://www.google.ru/search?q=odbc+timestamp+postrgesql
 уже пробовал? | |||
| 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 | 
        Можно еще попробовать дату приводить к строке или числу в самом запросе.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |