powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как вставить данные в Bool поля?
13 сообщений из 13, страница 1 из 1
Как вставить данные в Bool поля?
    #32833397
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В PostgreSQL я новичок. Так что не ругайтесь.

Пытаюсь в MS Access 2003 выполнить запрос на вставку данных в таблицу
tblShapeHistory (таблица лежит в PostgreSQL)

Текст запроса:

Код: plaintext
1.
2.
INSERT INTO tblShapeHistory ( log_ExclusionGroup, log_BadSale )
SELECT j_tbl_МинОстаткиНаДату.log_ExclusionGroup, j_tbl_МинОстаткиНаДату.log_BadSale
FROM j_tbl_МинОстаткиНаДату;

Тип полей

Код: plaintext
log_ExclusionGroup, log_BadSale

Bool

Вставить данные не удается из-за этим самых логических полей.
Когда эти поля убираю из-запроса, то все нормально.
Получается, что тип Bool в MS Access не совместим с типом Bool
в PostgreSQL?
В общем я не понимаю, в чем тут дело.

Посмотрите картинку - это сообщение об ошибке.
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32833423
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю правильно ли это, но я сделал запрос по другому.
С помощью фунции Switch я преобразовываю логические значения (MS Access) в текстовые: "True" и "False" и передаю их в PostgreSQL.

Тогда данные вставляются. Сделал я так, потому что логические поля из таблицы PostgreSQL в MS Access видятся как текстовые.
Картинку с полями прилагаю.
Еще в справке я нашел такую инфу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Valid literal values for the “true” state are: 

TRUE 
't' 
'true' 
'y' 
'yes' 
'1' 

For the “false” state, the following values can be used: 

FALSE 
'f' 
'false' 
'n' 
'no' 
'0' 
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32833617
MaximZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы это деал или через другой колиент для постгреса, а если вам это надо делать в программе под аксесом, то тогда вставку данных перенесите в процедуру и уже вызывайте ее.
Так будет надежнее.
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32833850
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Получается, что тип Bool в MS Access не совместим с типом Bool в PostgreSQL?

Настройте ODBC драйвер PostgreSQL.
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32833870
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Получается, что тип Bool в MS Access не совместим с типом Bool в PostgreSQL?

Настройте ODBC драйвер PostgreSQL.
точно. Все дело в "крыжиках"
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834039
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие должны быть крыжики для MS ACCESS здесь:
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834041
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и здесь (я ставил галочку там где -1, но это не помогло):
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834042
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, только что увидел флажок на Page 1
Bools as Char
Сейчас опробую...
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834278
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало.
Нужно было сделатьтак:
True is -1: есть флажок
Bools As Char: нет флажка
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834337
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QvadroИзвиняюсь, только что увидел флажок на Page 1
Bools as Char
Сейчас опробую...

проблема будет если буленово у вас в постгресс может быть NULL. Если аксесс распознал поле как буленово, он не даст впихнуть туда Null. (из под себя, т.е. через Jet - только через прямые запросы к серверу). Более того, Null будет отображаться Аксессом как False (что не есть хорошо).

Т.ч. Bool As Char пусть не привычно (аксесснику), но универсальнее. (делайте преобразование аксессом).
Код: plaintext
1.
INSERT INTO plots ( to_load )
VALUES ('True');
- работает, так же как:

Код: plaintext
1.
INSERT INTO plots ( to_load )
VALUES ('1');
или
Код: plaintext
1.
INSERT INTO plots ( to_load )
VALUES ('f');
но зато можно:
Код: plaintext
1.
INSERT INTO plots ( to_load )
VALUES (null);
При этом если грузите в постгрес из Аксессовских данных пишите
Код: plaintext
... SWITCH([a],'t', Not [a], 'f' ,True, null) ....

Если же буленовы у вас и в Postgres всегда будут Not Null, то убирайте "Bool As Char", и делайте "Подстановка"|"тип элемента управления"|"Флажок". - Будет привычнее.
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32834375
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЗЗЫЫ:

Да, кстати, какой у вас ОДБС драйвер?

У меня 7.03.01.00.
Так на больших объемах при неотжатом KSQO были проблемы с открытием/скролом гридов в аксессе. Что наблюдалось и в логе ОДБС (переставал подставлять значения ключей и гнал строку с неким именем переменной, что вызывало ошибку). Если у вас нет проблем ни при каких данных - черканите версию драйвера (знаю, что баги фиксились, но не пробовал - не до сссук).
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32836501
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4321ЗЗЗЫЫ:

Да, кстати, какой у вас ОДБС драйвер?


Версия: 8.00.00.02
Работаю в Windiws XP
...
Рейтинг: 0 / 0
Как вставить данные в Bool поля?
    #32836512
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4321
проблема будет если буленово у вас в постгресс может быть NULL. Если аксесс распознал поле как буленово, он не даст впихнуть туда Null. (из под себя, т.е. через Jet - только через прямые запросы к серверу). Более того, Null будет отображаться Аксессом как False (что не есть хорошо).

Т.ч. Bool As Char пусть не привычно (аксесснику), но универсальнее. (делайте преобразование аксессом).

Действительно. Все происходит так, как Вы пишете.
Спасибо за дельные советы.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как вставить данные в Bool поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]