2009-11-02 3 views
0

J'ai été incapable d'établir une connexion réussie à mon SQL Server (2005) en utilisant Win32 :: SqlServer. Le serveur est situé sur une autre machine. J'utilise la dernière version d'ActivePerl et le module.Comment utiliser Win32 :: SqlServer pour me connecter à distance?

Utilisation d'un fournisseur de ADO.NET (en C#), je peux établir une connexion avec la chaîne de connexion: Data Source=1.2.3.4,1553;Initial Catalog=dbname;User Id=username;Password=pw;

Dans un effort pour convertir ce pour Perl, je l'ai essayé ce qui suit :

my $conn = Win32::SqlServer::sql_init(); 

$conn->setloginproperty('ConnectionString', 'Data Source=1.2.3.4,1553;Initial Catalog=dbname;User Id=username;Password=pw;'); 
print $conn->connect(); 

de plus, je l'ai essayé de configurer le serveur, les informations de connexion, et base de données initiale individuellement à l'aide setloginproperty().

Tous ces échouent avec le message après le délai d'attente a été atteint:

SQL Server message 2, Severity 16, State 1 
Named Pipes Provider: Could not open a connection to SQL Server [2]. 
Message 08001 from 'Microsoft SQL Native Client', Severity: 16 
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. 
Message HYT00 from 'Microsoft SQL Native Client', Severity: 16 
Login timeout expired 
Terminating on fatal error at mkadm.pl line 54 

Répondre

0

La raison pour laquelle le premier exemple a échoué parce que la méthode sql_init() attend les arguments passés à elle. Afin d'utiliser le pour injecter les paramètres, ->new() doit être utilisé pour créer un objet SqlServer non initialisé!

Questions connexes