Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> linux DBD::Pg connect н еработает, DBI->connect("dbi:Pg:dbname=$dbname;hos 
:(
    Опции темы
izver84
Дата 7.4.2011, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



Под линуксом установил DBI-1.14
Подключил драйвер Pg. Создал программу
Код

#!/usr/bin/perl
use DBI;

@drivers = DBI->available_drivers;
print "------------- drivers -----------\n";
for $i (@drivers) {
  print "$i\n";
}
print "---------------------------\n";

результат
Код

ADO
DBM
ExampleP
File
Gofer
Multiplex
Pg
Proxy


Мне надо подключиться к базе postgresql-8.4 
 
Код

#!/usr/bin/perl
use DBI;

# имя базы данных
$dbname = "base";
# имя пользователя
$username = "user";
$password="password";
$dbhost = "ip";
$dbh = DBI->connect("dbi:Pg:dbname=$dbname;host=$dbhost","$username","$password", {PrintError => 0});

if ($DBI::err != 0) {
  print $DBI::errstr . "\n";
  exit($DBI::err);
}

$dbh->disconnect();

Выводим ошибку
Код

install_driver(Pg) failed: Bareword "SQL_UNKNOWN_TYPE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_UNKNOWN_TYPE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_BOOLEAN" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_BOOLEAN" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_ARRAY" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_ARRAY" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_DATE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_DATE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIME" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIME" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIMESTAMP" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIMESTAMP" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIME_WITH_TIMEZONE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIME_WITH_TIMEZONE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIMESTAMP_WITH_TIMEZONE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Bareword "SQL_TYPE_TIMESTAMP_WITH_TIMEZONE" not allowed while "strict subs" in use at /usr/lib/perl5/DBD/Pg.pm line 1312.
Compilation failed in require at (eval 1) line 3.


в чем проблема?



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
arto
Дата 7.4.2011, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



а каким образом вы поставили DBD::Pg ?
PM MAIL ICQ   Вверх
izver84
Дата 8.4.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



решил при установке ругался на pgsqlODBC. Удалил его. Установил DBI-1.615_90, зарабонало. 
Мне нужно записать даные в dbf.
Еще установил xbase
Код

apt-get install libdbd-xbase-perl
  
запускаю скрипт
Код

#!/usr/bin/perl
use DBI;
@drivers = DBI->available_drivers;
print "------------- drivers -----------\n";
for $i (@drivers) {
  print "$i\n";
}
print "---------------------------\n";

результат
Код

------------- drivers -----------
ADO
DBM
ExampleP
File
Gofer
Multiplex
Pg
Proxy
Sponge
XBase
---------------------------


запускаю скрипт
Код

#!/usr/bin/perl
use DBD::Xbase;

my $dir = "directory";

my $xbase_dbh = DBI->connect("DBI:XBase:$dir", undef, undef, {RaiseError =>1});

if ($DBI::err != 0) {
  print $DBI::errstr . "\n";
  exit($DBI::err);
}

$dbh->disconnect();


выдает ошибку
Код

Can't locate DBD/Xbase.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .)



Нечего не понимаю. Перл видет дривер или нет?


--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
izver84
Дата 8.4.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



надо было написать
Код

use DBD::Xbase;

ошибка
Код

Prototype mismatch: sub XBase::Base::O_BINARY () vs none at (eval 7) line 1.
Constant subroutine O_BINARY redefined at (eval 7) line 1.



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.