|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2018, 13:00 | #1 |
Пользователь
Регистрация: 21.09.2012
Сообщений: 20
|
Delphi неверно считывает поля Bool из базы PostgreSQL
Добрый день.
Столкнулся с непонятной проблемой. Создал базу в PostgreSQL. Код:
Соединяюсь с БД через ADO, драйвер ODBC обычный 32-х битный. При попытке прочитать поля bool или bit(1) в Delphi независимо от значения в БД результат запроса выдается False (это если их считывать AsBoolean). А если их считывать AsInteger, то все корректно работает, считывается то, что в БД. Причем я по всякому пробовал менять настройки подключения ODBC, но ничего не помогло. Помогите пожалуйста разобраться. Код прилагаю. Код:
|
25.10.2018, 13:29 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Это как драйвера интерпретируют такой тип. Потяни явно поля датасета в код и посмотри какого типа field-ы будут созданы. Могу предположить что TSmallIntField
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
25.10.2018, 14:27 | #3 |
Пользователь
Регистрация: 21.09.2012
Сообщений: 20
|
Сделал то, что Вы посоветовали.
Результат удивил. q1 - ftDateTime q2 - ftString q3 - ftWideString Я так понимаю, драйвер булёвые поля интерпретирует как строки? А как-то можно заставить этот драйвер работать нормально? Или драйвер другой искать? |
25.10.2018, 14:36 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Даже как строки. Ну а что мешает работать со строками? Там же наверняка '1' для истины, и, наверно, '0' для лжи. Не исключаю, что и в самой базе bool однобайтная строка. Искать другой драйвер? А их много odbc-шных для PostgreSQL? И никаких гарантий, что булев тип вернет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 25.10.2018 в 14:42. |
26.10.2018, 13:02 | #5 |
Пользователь
Регистрация: 21.09.2012
Сообщений: 20
|
Да, судя по всему, только такой вариант - работать либо со String, либо c Integer. Про Boolean забыть.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
OS windows 7 ( Восстановление данных PostgreSQL после потери pg_control ) - PostgreSQL | LWHS4356 | SQL, базы данных | 0 | 18.07.2018 14:56 |
Delphi+postgresql | Wolworine | БД в Delphi | 3 | 14.05.2012 13:41 |
Перенос базы из MySQL в PostgreSQL по средствам php | tematika | PHP | 3 | 09.08.2011 00:31 |
умножение матрицы на вектор на Delphi (неверно работает) | adm2010 | Помощь студентам | 1 | 29.01.2011 01:43 |