URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 3187
[ Назад ]

Исходное сообщение
"Тематический каталог: Настройка работы Perl скриптов совместно с MsSQL (perl database win)"

Отправлено auto_topic , 27-Янв-04 23:38 
Обсуждение статьи тематического каталога: Настройка работы Perl скриптов совместно с MsSQL (perl database win)

Ссылка на текст статьи: http://www.opennet.me/base/dev/perl_mssql.txt.html


Содержание

Сообщения в этом обсуждении
"Настройка работы Perl скриптов совместно с MsSQL (perl database win)"
Отправлено Andy , 27-Янв-04 23:38 
IMHO, базу забыли в примере

$dbh = DBI->connect('DBI:Sybase:server=<host>;port=<port>;database=<base>', 'username', 'password');


"Настройка работы Perl скриптов совместно с MsSQL (perl datab..."
Отправлено Yukko , 30-Янв-04 11:48 
Перечитал статью, которая получилась после публикации, а так же получил пару писем с репортами, чувствую надо сдалать пару исправлений.

1.
Вместо
(В строке 92 добавить $SYBASE=’/usr/local’)
надо
(В строке 92 добавить $SYBASE=/usr/local)
2.
У тех, у кого эта строка не 92, то вставьте эту стороку перед проверкой переменной $SYBASE. Эту проверку найти нетрудно.
А вообще там есть файл CONFIG, в нем описываются переменные, эту переменную можно попробовать описать ее там.
3.
Последняя редакция скрипта, взял так, как оно работает у меня, если скрипт комментария не добавит/уберет чего, то можете пользоваться:
#!/usr/bin/perl                                                                
use DBI;                                                                      
my @data;                                                                      
$dbh=DBI-connect('DBI:Sybase:server=192.168.0.7:1433','dbreader','dbreadersql')or die Couldn't connect to database: " . DBI->errstr;                        
my $sth=$dbh->prepare('select usernamefrom users');                          
$sth->execute();                                                              
while (@data=$sth->fetchrow_array())                                          
{                                                                              
my $x=@data[0];                                                                
print "result\t $x\n";                                                      
}


"Настройка работы Perl скриптов совместно с MsSQL (perl datab..."
Отправлено Yukko , 30-Янв-04 11:50 
1. Имя базы можно указывать прямо в запросе.
2. У меня подключается без указания базы потому что он имеет права только на одну базу.

"Настройка работы Perl скриптов совместно с MsSQL (perl datab..."
Отправлено 2115 , 10-Мрт-04 07:58 
Как решить проблемму с кодировкой, русские символы отоброжаются неправильно.

"Настройка работы Perl скриптов совместно с MsSQL (perl datab..."
Отправлено NM , 05-Апр-04 14:45 
Я задавал такой же здесь вопрос и решил так:
/usr/local/etc/freetds.conf или ~/.freetds.conf
должны содержать строки:
client charset = cp1251
в секциях [global] или [any_server]

Пробовал устанавливать кодировку koi8-r, но в версии freetds-0.62.tar.gz
мне выдает ошибку операции с плавающей точкой. Приходится дополнительно использовать Text::Iconv.

Пробовал также указывать кодировку клиента в строке соединения:
my $dbh = DBI->connect("dbi:Sybase:server=server:1433;database=master;charset=cp1251", $user, $password);
Нужного результата здесь не получается.


"Настройка работы Perl скриптов совместно с MsSQL (perl database win)"
Отправлено Yukko , 30-Янв-04 11:52 
Где-то символы глотает (пробел скушало):
my $sth=$dbh->prepare('select usernamefrom users');        
в запросе должно быть
select username from

"Настройка работы Perl скриптов совместно с MsSQL (perl database win)"
Отправлено NM , 01-Апр-04 10:11 
У меня все работает, но не могу получить ответ от сервера MSSQL2000 в нормальной кодировке: выдает  знаки ???. Видимо где-то происходит преобразование в Unicode. В документации DBD::Sybase говорится про указатель на кодировку клиента - charset. Пробовал разные кодировки, но ничего не менялось (cp1251, iso_1).

В документации по TDS также говорится про перекодировку - iconv, но как настроить не понятно.

Куда копать?


"Настройка работы Perl скриптов совместно с MsSQL (perl database win)"
Отправлено zoomba , 19-Авг-04 15:34 
Q: У меня все работает, но не могу получить ответ от сервера MSSQL2000 в нормальной кодировке: выдает  знаки ???.

---------------

A: Как уже было сказано: /usr/local/etc/freetds.conf или ~/.freetds.conf
должны содержать строки:
client charset = cp1251
в секциях [global] или [any_server]


"Настройка работы Perl скриптов совместно с MsSQL (perl database win)"
Отправлено pavel_i , 31-Янв-08 18:50 
Да, но в начала статьи речь шла о MSSQL, а содержание про Sybase. Может имелось ввиду DBI:ODBC?
Как сделать связку FreeTDS и PERL?