Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как вставить данные в Bool поля? / 13 сообщений из 13, страница 1 из 1
18.12.2004, 14:50
    #32833397
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
В 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
18.12.2004, 15:38
    #32833423
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
Не знаю правильно ли это, но я сделал запрос по другому.
С помощью фунции 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
19.12.2004, 02:14
    #32833617
MaximZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
я бы это деал или через другой колиент для постгреса, а если вам это надо делать в программе под аксесом, то тогда вставку данных перенесите в процедуру и уже вызывайте ее.
Так будет надежнее.
...
Рейтинг: 0 / 0
19.12.2004, 18:34
    #32833850
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
> Получается, что тип Bool в MS Access не совместим с типом Bool в PostgreSQL?

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

Настройте ODBC драйвер PostgreSQL.
точно. Все дело в "крыжиках"
...
Рейтинг: 0 / 0
20.12.2004, 07:53
    #32834039
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
Какие должны быть крыжики для MS ACCESS здесь:
...
Рейтинг: 0 / 0
20.12.2004, 07:55
    #32834041
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
и здесь (я ставил галочку там где -1, но это не помогло):
...
Рейтинг: 0 / 0
20.12.2004, 07:59
    #32834042
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
Извиняюсь, только что увидел флажок на Page 1
Bools as Char
Сейчас опробую...
...
Рейтинг: 0 / 0
20.12.2004, 10:57
    #32834278
Qvadro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
Все заработало.
Нужно было сделатьтак:
True is -1: есть флажок
Bools As Char: нет флажка
...
Рейтинг: 0 / 0
20.12.2004, 11:19
    #32834337
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
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
20.12.2004, 11:30
    #32834375
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить данные в Bool поля?
ЗЗЗЫЫ:

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

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

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


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

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

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


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