ďťż
 
ODBC i M$SQL ďťż
 
ODBC i M$SQL
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

ODBC i M$SQL



Martin Lukasik - 22-04-2006 00:14
ODBC i M$SQL
  Hej, ho...
Niestety musze sie podlaczyc pod baze MSSQL. Nawiazujac do FAQ, moge na dwa
sposoby: poprzez driver sybase albo ODBC.
No to wybralem "bramke nr 2" -- ODBC.

Problem jest banalny, ale juz mi rece opadaja. Zainstalowalem wszystko, a
DBD::ODBC nie moze otworzyc biblioteki libodbc.so.1.
Biblioteka znajduje sie w /usr/local/lib, skopiowalem ja juz wszystkie
mozliwe miejsca, razem z biezacym katalogiem, w ktorym znajduje sie skrypt.
I dalej w nagrode dostaje:

[root@buddy -mssql]# ./testproc.pl
install_driver(ODBC) failed: Can't load
'/usr/lib/perl5/5.8.5/i386-linux-thread-multi/auto/DBD/ODBC/ODBC.so' for
module DBD::ODBC: libodbc.so.1: cannot open shared object file: No such file
or directory at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm
line 230.
at (eval 1) line 3
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
at ./testproc.pl line 8

Jak sprawdzic skad on probuje przeczytac ten libodbc.so.1? Za cholere nie
moge sobie poradzic :-(

HEEEELP!

Dzieki z gory,
Marcin





=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 22-04-2006 00:14

  Użytkownik Martin Lukasik napisał:

> Jak sprawdzic skad on probuje przeczytac ten libodbc.so.1? Za cholere nie
> moge sobie poradzic :-(

Sprobuj:

> strace ./testproc.pl

i przeanalizuj open
--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




Martin Lukasik - 25-04-2006 00:04

  > Sprobuj:
>
> > strace ./testproc.pl
>
> i przeanalizuj open

Super. Wprawdzie standardowo jest to tylko na debianie, ale sciagnalem,
skompilowalem i dziala ekstra.
Teraz nowy problem:

[root@asterisk1 -mssql]# ./testproc.pl
DBI connect('193.38.52.145','root',...) failed: [unixODBC][Driver
Manager]Data source name not found, and no default driver specified
(SQL-IM002)(DBD: db_login/SQLConnect err=-1) at ./testproc.pl line 11
Can't connect: [unixODBC][Driver Manager]Data source name not found, and no
default driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=-1) at
../testproc.pl line 11.

Nie wiem jak ten kiczowaty sterownik mam wpakowac do connect().
Nigdzie zadnej dokumentacji, niedobrze mi sie robi.
Podlaczenie do mysql-a zajelo mi moze z 5 minut z instalacja modulow
wlacznie, a z tym mssql-em mecze sie juz ktorys dzien z kolei...

Ktos to probowal "odpalic"?

Pomozcie bo juz wysiadam...

Dzieki,
m.




Krzysztof Juszkiewicz - 25-04-2006 00:04

  Martin Lukasik wrote in group pl.comp.lang.perl:
>DBI connect('193.38.52.145','root',...) failed: [unixODBC][Driver
>Manager]Data source name not found, and no default driver specified
>Ktos to probowal "odpalic"?
>Dzieki,
>m.
Tego nie, ale może spróbuj tak zrobić connect:
http://pl.wikibooks.org/wiki/Perl_faq/Bazy_danych
KJ
--
_ _ ___
| |/ / |_ _| Krzysztof Juszkiewicz http://www.kt.agh.edu.pl/~juszkiew/
|_|\_\ |_| Dept. of Telecommunications http://www.kt.agh.edu.pl/
AGH AGH pl.comp.lang.perl FAQ: http://www.kt.agh.edu.pl/other/perl/faq/





=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 25-04-2006 00:04

  Użytkownik Martin Lukasik napisał:
>>Sprobuj:
>>
>>
>>>strace ./testproc.pl
>>
>>i przeanalizuj open
>
>
> Super. Wprawdzie standardowo jest to tylko na debianie, ale sciagnalem,
> skompilowalem i dziala ekstra.
> Teraz nowy problem:
>
> [root@asterisk1 -mssql]# ./testproc.pl
> DBI connect('193.38.52.145','root',...) failed: [unixODBC][Driver
> Manager]Data source name not found, and no default driver specified
> (SQL-IM002)(DBD: db_login/SQLConnect err=-1) at ./testproc.pl line 11
> Can't connect: [unixODBC][Driver Manager]Data source name not found, and no
> default driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=-1) at
> ./testproc.pl line 11.
>
> Nie wiem jak ten kiczowaty sterownik mam wpakowac do connect().
> Nigdzie zadnej dokumentacji, niedobrze mi sie robi.
> Podlaczenie do mysql-a zajelo mi moze z 5 minut z instalacja modulow
> wlacznie, a z tym mssql-em mecze sie juz ktorys dzien z kolei...
>
> Ktos to probowal "odpalic"?
>

Pokaż źródło, ten komunikat jak dla mnie jest trochę enigmatyczny.
Z kolei masz w /etc/ld.so.conf /usr/local/lib?
--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




Martin Lukasik - 25-04-2006 00:04

  > Tego nie, ale może spróbuj tak zrobić connect:
> http://pl.wikibooks.org/wiki/Perl_faq/Bazy_danych
> KJ

A przegladales ten dokument? Bo ja tak, i poza informacjami w stylu
"sciagnij, zainstaluj i sie podlacz" to niewiele tam jest.
Wlasciwie to guzik tam jest.

m.




Martin Lukasik - 25-04-2006 00:04

  > Pokaż źródło, ten komunikat jak dla mnie jest trochę enigmatyczny.
> Z kolei masz w /etc/ld.so.conf /usr/local/lib?

use strict;
use DBI;

my $dbh=DBI->connect("DBI:ODBC:193.38.1.1", "root", "Beef") or die "Can't
connect: $DBI::errstr";
$dbh->do("DROP TABLE table1");
$dbh->do("CREATE TABLE table1 (i INTEGER)");
$dbh->do("DROP PROCEDURE proc1");
my $proc1 =
"CREATE PROCEDURE proc1 AS ".
"BEGIN".
" INSERT INTO table1 VALUES (100);". # breaks fetchrow_array
" SELECT 9;".
"END";

$dbh->do ($proc1);

# Execute it:
if (-e "dbitrace.log") {
unlink("dbitrace.log");
}
$dbh->trace(9, "dbitrace.log");
my $sth = $dbh->prepare ("exec proc1");
$sth->execute ();
do {
while (my $result = $sth->fetchrow_array()) {
print "result = $result\n";
}
} while ($sth->{odbc_more_results});
$dbh->disconnect;

W sumie to chyba musze cos pomieszac w odbc.ini i odbcinst.ini, ale
normalnych opisow co i jak jak na lekarstwo. Az mi sie smutno robi...

Jak to skonfiguruje to moze sam cos napisze.

m.




Krzysztof Juszkiewicz - 25-04-2006 00:04

  Martin Lukasik wrote in group pl.comp.lang.perl:
>> http://pl.wikibooks.org/wiki/Perl_faq/Bazy_danych
>A przegladales ten dokument? Bo ja tak, i poza informacjami w stylu
>"sciagnij, zainstaluj i sie podlacz" to niewiele tam jest.
>Wlasciwie to guzik tam jest.
>m.
Wiesz, ja go pisałem. Tam jest
my $dbh = DBI->connect( "dbi:$dbdbd:$dbname", $username, $password);
a u ciebie coś ciut innego.
KJ
--
_ _ ___
| |/ / |_ _| Krzysztof Juszkiewicz http://www.kt.agh.edu.pl/~juszkiew/
|_|\_\ |_| Dept. of Telecommunications http://www.kt.agh.edu.pl/
AGH AGH pl.comp.lang.perl FAQ: http://www.kt.agh.edu.pl/other/perl/faq/




=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 25-04-2006 00:04

  Użytkownik Martin Lukasik napisał:
>>Pokaż źródło, ten komunikat jak dla mnie jest trochę enigmatyczny.
>>Z kolei masz w /etc/ld.so.conf /usr/local/lib?
>
>
> use strict;
> use DBI;

Zrób to proszę z

> nl ./testproc.pl

Bo nadal nie mam pewności czy wywala Ci się linia z 'connect'.

--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 25-04-2006 00:04

  Użytkownik Martin Lukasik napisał:
>>Pokaż źródło, ten komunikat jak dla mnie jest trochę enigmatyczny.
>>Z kolei masz w /etc/ld.so.conf /usr/local/lib?
>
>
> use strict;
> use DBI;
>
> my $dbh=DBI->connect("DBI:ODBC:193.38.1.1", "root", "Beef") or die "Can't
> connect: $DBI::errstr";

W dokumentacji http://search.cpan.org/~jurl/DBD-ODBC-1.13/ODBC.pm

piszą

Example (using MSSQL Server): my $DSN = 'driver={SQL Server};Server=server_name;
database=database_name;uid=user;pwd=password;'; my $dbh = DBI->connect("dbi:ODBC:$DSN") or die
"$DBI::errstr\n";

Czyli raczej connect powinien wyglądać tak:

my $DSN = 'driver={SQL Server};Server=193.38.1.1;database=nazwabazy;uid=r oot;pwd=Beef;';
my $dbh = DBI->connect("dbi:ODBC:$DSN) or die "$DBI::errstr\n";

Nie mam MSSQL serwera więc bazuję na dokumentacji.
--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




Martin Lukasik - 25-04-2006 00:04

  > Wiesz, ja go pisałem.

To nie zmienia faktu, ze jest w stylu "sciagnij zainstaluj i ma dzialac" :-(

> Tam jest
> my $dbh = DBI->connect( "dbi:$dbdbd:$dbname", $username, $password);
> a u ciebie coś ciut innego.

Owszem Krzysku; ale znowu zapomniales, ze nie rozmawiamy o mysql (do ktorego
podlaczylem sie w doslownie 5 minut) tylko o MS SQL. I tu jest problem...

m.




Martin Lukasik - 25-04-2006 00:04

  > Bo nadal nie mam pewności czy wywala Ci się linia z 'connect'.

Sorry.
Nie ma drivera zdefiniowanego, ot i co.

1 #!/usr/bin/perl -w
2 # $Id: testproc.pl 93 2004-02-19 19:28:16Z jurl $

3 $ENV{'ODBC_HOME'} = "/usr/local/lib";
4 $ENV{'ODBCHOME'} = "/usr/local/lib";

5 #use strict;
6 use DBI;
7 use DBD::ODBC;

8 # Connect to the database, and create a table and stored procedure:
9 my $dbh=DBI->connect("DBI:ODBC:193.38.1.1", "root", "Beef") or die
"Can't connect: $DBI::errstr";
10 $dbh->do("DROP TABLE table1");
11 $dbh->do("CREATE TABLE table1 (i INTEGER)");
12 $dbh->do("DROP PROCEDURE proc1");
13 my $proc1 =
14 "CREATE PROCEDURE proc1 AS ".
15 "BEGIN".
16 " INSERT INTO table1 VALUES (100);". # breaks
fetchrow_array
17 " SELECT 9;".
18 "END";

19 $dbh->do ($proc1);

20 # Execute it:
21 if (-e "dbitrace.log") {
22 unlink("dbitrace.log");
23 }
24 $dbh->trace(9, "dbitrace.log");
25 my $sth = $dbh->prepare ("exec proc1");
26 $sth->execute ();
27 do {
28 while (my $result = $sth->fetchrow_array()) {
29 print "result = $result\n";
30 }
31 } while ($sth->{odbc_more_results});
32 $dbh->disconnect;

m.




Martin Lukasik - 25-04-2006 00:04

  > W dokumentacji http://search.cpan.org/~jurl/DBD-ODBC-1.13/ODBC.pm
>
> piszą
>
> Example (using MSSQL Server): my $DSN = 'driver={SQL
> Server};Server=server_name;
> database=database_name;uid=user;pwd=password;'; my $dbh =
> DBI->connect("dbi:ODBC:$DSN") or die "$DBI::errstr\n";
>
> Czyli raczej connect powinien wyglądać tak:
>
> my $DSN = 'driver={SQL
> Server};Server=193.38.1.1;database=nazwabazy;uid=r oot;pwd=Beef;';
> my $dbh = DBI->connect("dbi:ODBC:$DSN) or die "$DBI::errstr\n";
>
> Nie mam MSSQL serwera więc bazuję na dokumentacji.

$DSN czytane jest z odbc.ini, gdzie jest zdefiniowany.
Ale juz nie wiem jak za to sie zabrac.
Niby pisza o tym .ini, Ty mi wklejasz cos, a w przykladach z DBD::ODBC
dostaje to, co wkleilem...
Slabo mi, ale jeszcze powalcze ;-)

m.




Krzysztof Juszkiewicz - 25-04-2006 00:04

  Martin Lukasik wrote in group pl.comp.lang.perl:
>Perhaps a required shared library or dll isn't installed where expected
> at ./testproc.pl line 8
>Jak sprawdzic skad on probuje przeczytac ten libodbc.so.1? Za cholere nie
>moge sobie poradzic :-(
>Marcin
A próbowałeś tak:
ldd /bin/perl skrypt.pl
KJ
--
_ _ ___
| |/ / |_ _| Krzysztof Juszkiewicz http://www.kt.agh.edu.pl/~juszkiew/
|_|\_\ |_| Dept. of Telecommunications http://www.kt.agh.edu.pl/
AGH AGH pl.comp.lang.perl FAQ: http://www.kt.agh.edu.pl/other/perl/faq/




Dariusz Jackowski - 25-04-2006 00:04

  Martin Lukasik wrote:
>
> Problem jest banalny, ale juz mi rece opadaja. Zainstalowalem
> wszystko, a DBD::ODBC nie moze otworzyc biblioteki libodbc.so.1.

Niezrozumiałeś komunikat błędu. Nie masz ustawionej ścieżki do biblioteki
współdzielonej ODBC.so albo źle zainstalowałeś DBD::ODBC. Sprawdź czy plik
ODBC.so istnieje pod wskazaną ścieżką. Jeśli nie, uruchom CPAN i poprawnie
zainstaluj ten pakiet (Perl FAQ napewno pomoże). Jeśli plik istnieje,
sprawdź @INC w perl -V. Jeśli podanej ścieżki tam nie ma, wyeksportuj
zmienną PERL5LIB z podaną ścieżką.

--asc




Martin Lukasik - 25-04-2006 00:04

  > Niezrozumiałeś komunikat błędu. Nie masz ustawionej ścieżki do biblioteki
> współdzielonej ODBC.so albo źle zainstalowałeś DBD::ODBC. Sprawdź czy plik
> ODBC.so istnieje pod wskazaną ścieżką. Jeśli nie, uruchom CPAN i poprawnie
> zainstaluj ten pakiet (Perl FAQ napewno pomoże). Jeśli plik istnieje,
> sprawdź @INC w perl -V. Jeśli podanej ścieżki tam nie ma, wyeksportuj
> zmienną PERL5LIB z podaną ścieżką.

Zrozumialem. Perlowy modul ODBC nie stanowil problemu. unixODBC tez nie. Ale
ten z kolei ladowal driver, ktory byl zainstalowany, tylko magicznie
"stworzyly sie" dwa pliki odbc.ini. Jeden w /etc i jeden w /usr/local/etc.
Ja mieszalem pierwszym, a okazalo sie, ze to ten drugi.

Wszystko niby dziala... dzieki zainteresowanym.

I tak przy okazji pytanie: sa jakies darmowe drivery do MS SQL pod linuxa?
Bo z tego co szukalem to wszyscy chca, zeby im placic. A mi to tak szczerze
powiedziawszy nie sluzy do niczego konkretnego, i troche mnie to boli...

Dzieki,
Marcin




=?UTF-8?B?RmlsaXAgUmVtYmlhxYJrb3dza2k=?= - 05-05-2006 00:06

  Martin Lukasik wrote:
>> Niezrozumiałeś komunikat błędu. Nie masz ustawionej ścieżki do biblioteki
>> współdzielonej ODBC.so albo źle zainstalowałeś DBD::ODBC. Sprawdź czy plik
>> ODBC.so istnieje pod wskazaną ścieżką. Jeśli nie, uruchom CPAN i poprawnie
>> zainstaluj ten pakiet (Perl FAQ napewno pomoże). Jeśli plik istnieje,
>> sprawdź @INC w perl -V. Jeśli podanej ścieżki tam nie ma, wyeksportuj
>> zmienną PERL5LIB z podaną ścieżką.
>
> Zrozumialem. Perlowy modul ODBC nie stanowil problemu. unixODBC tez nie. Ale
> ten z kolei ladowal driver, ktory byl zainstalowany, tylko magicznie
> "stworzyly sie" dwa pliki odbc.ini. Jeden w /etc i jeden w /usr/local/etc.
> Ja mieszalem pierwszym, a okazalo sie, ze to ten drugi.
>
> Wszystko niby dziala... dzieki zainteresowanym.
>
> I tak przy okazji pytanie: sa jakies darmowe drivery do MS SQL pod linuxa?

a freetds nie jest?

BTW - po prześledzeniu tegio wątku cieszę się że za pierwszym razem
wybrałem freetds + DBD::Sybase :)

> Bo z tego co szukalem to wszyscy chca, zeby im placic. A mi to tak szczerze
> powiedziawszy nie sluzy do niczego konkretnego, i troche mnie to boli...
>
> Dzieki,
> Marcin
>
>
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com