Libpq, PQexec и вставка русских полей

Здравстуйте!
Помогите, пожалуйста, советом. Стоит задача написать приложение на Visual C, которое запрашивает у пользователя значения полей определенной таблицы и затем их добавляет. Использую библиотеку libpq и функцию PQexec(...). Если вторым параметром функции прописываю строку
"INSERT INTO books VALUES(1,'SQL', 816,2001, 1,1,1, 2, '2-nd edition', 5)"
вставка происходит нормально, а если меняю хотя бы одно поле на русскоязычное, например,
"INSERT INTO books VALUES(1,'SQL', 816,2001, 1,1,1, 2, '2-е издание', 5)"
вставка не выполняется.
Каким образом и что надо настроить, чтоб последняя команда выполнилась?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Если у вас БД в UTF-8,

Если у вас БД в UTF-8, попробуйте после коннекта к базе, выдать команду смены кодировки:
SET CLIENT_ENCODING TO 'UTF-8';
если база в виндовой кодировке или ещё какой - см. список поддерживаемых кодировок:
http://postgresql.ru.net/manual/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED

Спасибо за помощь! У меня

Спасибо за помощь!
У меня база в кодировке WIN1251, помог вызов функции
PQsetClientEncoding(conn,"WIN1251");

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023