Hi Gurus,

I need to connect to MSSQL SERVER (express edition on remote system) through
a perl script. But I get the following error with the code below can any
body help me in that.

############ ERROR

Use of uninitialized value $Win32::ODBC::ErrConn in concatenation (.) or
string
at C:/Perl/lib/Win32/ODBC.pm line 785.
Unable to connect to DSN Databasesysadm:[17] [] "[Microsoft][ODBC SQL Server
Dri
ver][TCP/IP Sockets]SQL Server does not exist or access denied."

############ ERROR

################## CODE SNIP

my $user="sqlserver";
my $pw="servertest";
my $dsn="Databasesysadm"; # name of the DSN we will be using
my $SERVER="remotemachine";
my $DB="projDB";
my %dsnavail;
my @cols;
my @dbs;
my $table;
my @tables;



die "Unable to query available DSN's".Win32::ODBC::Error(  )."\n"   unless
(%dsnavail = Win32::ODBC::DataSources(  ));

foreach my $key (keys %dsnavail)
{
 print "$key=$dsnavail{$key}\n";
}

if (!defined $dsnavail{$dsn})
{
    die "unable to create DSN:".Win32::ODBC::Error(  )."\n"
      unless (Win32::ODBC::ConfigDSN(ODBC_ADD_DSN,  "SQL Server",
("DSN=$dsn",  "DESCRIPTION=DSN for PerlSysAdm",  "SERVER=remotemachine",
"DATABASE=$DB", "NETWORK=DBMSSOCN",)));
}


my $dbh = new Win32::ODBC("DSN=$dsn;UID=$user;PWD=$pw;");

die "Unable to connect to DSN $dsn:".Win32::ODBC::Error(  )."\n"  unless
(defined $dbh);

# find the databases on the server
if (defined $dbh->Sql(q{SELECT name from sysdatabases}))
{
    die "Unable to query databases:".Win32::ODBC::Error(  )."\n";
}


$dbh->Close(  );

die "Unable to delete DSN:".Win32::ODBC::Error(  )."\n"    unless
(Win32::ODBC::ConfigDSN(ODBC_ REMOVE_DSN, "SQL Server","DSN=$dsn"));

 ################## CODE SNIP

 Thanks,

PP

Reply via email to