2011-03-30 1 views
3

J'utilise une connexion ODBC pour mon application (ControlPanel -> administrativetools -> odbc -> DSN) au serveur SQL 2008, et l'authentification Windows il fonctionne parfaitement sur Windows XP,chaîne de connexion odbc doesnt travail sur Windows 7

mais maintenant je l'exécute sur Windows7 et SQL Server 2008 avec l'authentification du serveur SQL. quand je fais la source de données et d'interroger la connexion de son ok et je reçu ce message (TESTS completed Successfully!)

mais quand je lance l'application j'ai eu cette erreur

(ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''. ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''.) 

Sa quelque chose de mal Whit DSN mais je ne sais pas ce que c'est,

peut-être Faire DSN est différent dans Windows 7 ????

merci beaucoup

je pense un peu plus et je trouve que peut-être mon mot de passe ne sauvegarde pas pour mon utilisateur, quand je fais ce DSN?

Comment puis-je l'enregistrer ???

Répondre

2

N'est-ce pas une application 64 bits Win7 et 32 ​​bits?

Si tel est le cas, vous devez configurer le DSN ODBC dans le sous-système Windows 32 bits. Il existe 2 versions de odbcad32.exe dans les versions 64 bits de Windows. Dans c:\windows\system32 vous trouverez 64 bits qui configurent ODBC pour les applications 64 bits et dans c:\windows\syswow64 il existe une version 32 bits que vous devez utiliser pour configurer ODBC pour les programmes 32 bits.

+0

merci pour la réponse. pas les deux sont 32 bits – Mahsa

0

J'ai trouvé

Je fais mon DSN comme avant. mais quand je veux l'utiliser dans mon application (connexion au serveur sql avec l'authentification de sql) je devrais passer le (userid et le mot de passe à lui comme ci-dessous)

Dim con comme nouveau Odbc.OdbcConnection ("dsn = dsnName; UID = sa; PWD = 123 ")

0

Normalement, la connexion ODBC par SQLConnect() nécessite une chaîne de connexion, un nom d'utilisateur et un mot de passe. Le nom d'utilisateur et le mot de passe dans le panneau d'administration sont utilisés uniquement pour le test de connexion et chaque application doit fournir un nom d'utilisateur et un mot de passe. Dans certains environnements, le nom d'utilisateur et le mot de passe sont dans la chaîne de connexion. Par exemple, j'utiliser le module Python odbc où la connexion est établie avec un seul paramètre: http://docs.activestate.com/activepython/2.6/pywin32/odbc__odbc_meth.html

conn = odbc.odbc('dsn_alias/user/password') 

Vous pouvez trouver plus sur la chaîne de connexion à SQL Server 2008 ici: http://connectionstrings.com/sql-server-2008

0

Je viens Ported une application VB6 qui a utilisé classique ado et un DSN pour accéder aux données SQL pour Win Server 2008 R2 et Sql Server 2008 R2. Deux liens pour vérifier quand vous avez ce problème sont affichés ci-dessous. Fondamentalement, vous exécutez un test UDL et cela se connecte à vos pilotes oledb qui sont installés sur le système d'exploitation et vous donne une idée si vous pouvez vraiment accéder à la base de données à travers le pilote. La belle partie à ce sujet est que le fichier "UDL" que vous créez dans ces liens contiendra pour vous la chaîne de connexion exacte nécessaire pour mettre à jour votre application. Vous pouvez copier cette chaîne de connexion à la place de votre ancien et renoncer à la configuration d'un nouveau DSN sur la machine.

x64 UDL Test

x86 UDL Test

D'après ce que je peux voir les pilotes OleDb exigent maintenant fournisseur et datacompatibilitylevel variables définies dans la chaîne de connexion en plus d'autres propriétés.

Vous fait vraiment apprécier la classe sqlClient. Ha.

Questions connexes