Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PL/PERL + DBI XBase / 5 сообщений из 5, страница 1 из 1
06.05.2008, 10:39
    #35296144
rujet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/PERL + DBI XBase
Делаю вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TYPE testrow AS
   (f1 text, f2 bytea, f3 text);
ALTER TYPE testrow OWNER TO postgres;

CREATE OR REPLACE FUNCTION testdbf()
  RETURNS SETOF testrow AS
$BODY$
use DBI;
my $dbh = DBI->connect("DBI:XBase:/home/user/test") or die $DBI::errstr;
my $sth = $dbh->prepare("select rn, listname from acatalog") or die $dbh->errstr();
   $sth->execute() or die $sth->errstr();
while ( $row = $sth->fetch)
{
    return_next({f1=>$row->[ 0 ],f2=>$row->[ 1 ], f3=>$row->[ 1 ]});
}
return undef;
$BODY$
  LANGUAGE 'plperlu' VOLATILE;
ALTER FUNCTION testdbf() OWNER TO postgres;
select * from testdbf();


Получаю

"001S";"\321\354\345\362\340 \360\340\361\365\356\344\356\342";""
"001T";"\312\340\360\362\356\367\352\340 \352\340\361\361\356\342\373\365 \360\340\361\365\356\344\356\342";""
"001U";"\312\355\350\343\340 \352\340\361\361\356\342\373\365 \360\340\361\365\356\344\356\342";""

Сама таблица, кодировка вин1251

001S Книга кассовых расходов
001T Книга целевых расходов
001U Книга фактических расходов

При этом латиница и цифры выходят нормально. Как одолеть русскую кириллицу?
...
Рейтинг: 0 / 0
06.05.2008, 11:20
    #35296281
Serik Akhmetov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/PERL + DBI XBase
а зачем поле f2 типа bytea ? почему не text ?
...
Рейтинг: 0 / 0
06.05.2008, 11:34
    #35296338
гость_0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/PERL + DBI XBase
что такое xbase ? в какой кодировке её драйвер возвращает данные ? какая кодировка кластера пж ? какая локаль процесса обслуживающего этот кластер ? какая версия и ос сервера пж ?
...
Рейтинг: 0 / 0
06.05.2008, 13:54
    #35296864
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/PERL + DBI XBase
вот так что выводится ?
Код: plaintext
1.
select convert_from(f2, 'windows1251') from testdbf();


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
06.05.2008, 18:21
    #35297859
rujet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/PERL + DBI XBase
Получилось, вот так. Select convert(f3,'windows1251','utf8') from testdbf() Спасибо за правильное направление. Я все в сторону перла смотрел) про постгресс не подумал)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PL/PERL + DBI XBase / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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