Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема с PQfnumber / 4 сообщений из 4, страница 1 из 1
20.04.2008, 21:06
    #35267217
ghostwheel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с PQfnumber
Доброго времени суток!

Пишу прогу с использованием libpq и столкнулся с проблемой, что функция PQfnumber возвращает вместо номера поля "-1". При помощи вот такого вот кода

Код: plaintext
1.
2.
3.
4.
	int i = PQfnumber(res, "TABLE_DESCRIPTION");
	char* tmp = PQfname(res,  0 );

	buffer = PQgetvalue(res,  0 ,  0  /*PQfnumber(res, "TABLE_DESCRIPTION") */);

удалось выяснить, что:
1. i="-1"
2. tmp = "TABLE_DESCRIPTION"
3. buffer = "некоторое значение из базы"

Собственно вопрос, почему PQfnumber возвращает -1 (уже всю голову сломал) и как заставить ее возвращать номер указанного поля (опечаток в параметрах функции нет)? Остальной код работает нормально.
...
Рейтинг: 0 / 0
20.04.2008, 21:31
    #35267237
ghostwheel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с PQfnumber
Даже в таком случае i=-1
Код: plaintext
int i = PQfnumber(res, PQfname(res,  0 ))
...
Рейтинг: 0 / 0
21.04.2008, 10:47
    #35267770
Thamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с PQfnumber
Рискну предположить, что в вашем селекте, которого здесь не видно, вы выбираете поля в двойных кавычках.
То есть при селекте:
Код: plaintext
select "TABLE_DESCRIPTION" from table1
вам надо :
Код: plaintext
int i = PQfnumber(res, "\"TABLE_DESCRIPTION\"");

А если без кавычек:
Код: plaintext
select TABLE_DESCRIPTION from table1
,
то можно просто:
Код: plaintext
int i = PQfnumber(res, "TABLE_DESCRIPTION");


P.s.
А -1 значит, что ID поля не найдено по его названию.
...
Рейтинг: 0 / 0
21.04.2008, 20:55
    #35269787
ghostwheel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с PQfnumber
Спасибо, именно в кавычках и была проблема! Однако, не понятно почему вот такой вот код возвращал -1, хотя по идее должен был возвращать 0:
Код: plaintext
PQfnumber(res, PQfname(res,  0 ))
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема с PQfnumber / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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