Nom de la source de données introuvable et aucun pilote par défaut spécifié

J'ai besoin d'aide pour corriger une erreur: l' SQL state IM014 in SQLConnect et l' SQL state IM002 in SQLConnect .

Je cours le même script, un sur webserver/remote/ et l'autre de la machine locale essayant d'accéder à la même database mais j'ai un message d'erreur différent.

Quand je l'exécute du server Web je reçois

Erreur SQL: [unixODBC] [Driver Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié, état SQL IM002 dans SQL

où comme quand je l'exécute sur la machine locale, je reçois

[Microsoft] [Gestionnaire de pilotes ODBC] Le DSN spécifié contient une non-concordance d'architecture entre le pilote et l'application

J'ai utilisé le code suivant dans le script php pour me connecter à la database locale

 $odbc['dsn'] = "SageLine50v19"; $odbc['user'] = "Peac"; $odbc['pass'] = "XXXX"; $mysql['host'] = "localhost"; $mysql['user'] = "root"; $mysql['pass'] = ""; $mysql['dbname'] = "sagetest"; $mysql['idfield'] = "id"; // Step 1: Connect to the source ODBC database if ($debug) echo "Connect to " . $odbc['dsn'] . ' as ' . $odbc['user'] . "\n"; $conn = odbc_connect($odbc['dsn'], $odbc['user'], $odbc['pass']); if (!$conn) { die("Error connecting to the ODBC database: " . odbc_errormsg()); } // loop through each table $allTables = odbc_tables($conn); $tablesArray = array(); while (odbc_fetch_row($allTables)) { if (odbc_result($allTables, "TABLE_TYPE") == "TABLE") { $tablesArray[] = odbc_result($allTables, "TABLE_NAME"); } } //print_r($tablesArray); // to list all tables 

Mon ODBC.ini ressemble à ci-dessous

 [ODBC 32 bit Data Sources] manager=Sage Line 50 v16 (32 bit) t=SQL Server Native Client 10.0 (32 bit) s1=Pervasive ODBC Client Interface (32 bit) SageLine50v19=Pervasive ODBC Client Interface (32 bit) [manager] Driver32=C:\Windows\SysWOW64\S16DBC32.dll [t] Driver32=C:\Windows\system32\sqlncli10.dll [s1] Driver32=C:\Program Files (x86)\Pervasive Software\PSQL\bin\w3odbcci.dll [SageLine50v19] Driver32=C:\Program Files (x86)\Pervasive Software\PSQL\bin\w3odbcci.dll 

Très simple!

Sur le server:

Erreur SQL: [unixODBC] [Driver Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié, état SQL IM002 dans SQL

Supprimez le nom de la source de données USER et définissez-le en tant que nom de source de données SYSTEM. Allez dans -> Démarrer -> Paramètres -> Panneau de configuration -> devises d'administration -> Sources de données (ODBC): – DSN user: supprimer le DSN user spécifié – DSN système: créer un nouveau DSN système

Sinon, essayez d'installer la même version 32 bits ou 64 bits que celle installée localement.

Localement:

[Microsoft] [Gestionnaire de pilotes ODBC] Le DSN spécifié contient une non-concordance d'architecture entre le pilote et l'application

Conflit 32 bits / 64 bits – soit vous installez une version de pilote 32 bits, soit vous utilisez / configurez la 32 bits sous C: \ Windows \ SysWoW64 \

Essayez d'installer la même version 32bits ou 64bits que celle installée localement.

Il y a quelques choses qui peuvent causer cela. Tout d'abord, le DSN doit être déclaré sur les deux machines, sur l'ordinateur distant, il doit s'agir d'une adresse WAN ou LAN en fonction de l'endroit où il se trouve sur le réseau. Deuxièmement, vous devez vous assurer que vous avez le bon pilote ODBC, il y a des pilotes 32 bits et des pilotes 64 bits. Le connecteur MySQL est livré avec les deux.

 32 bit ODBC: %systemdrive%\Windows\SysWoW64\odbcad32.exe 64 bit ODBC: %systemdrive%\Windows\system32\odbcad32.exe 

Je voudrais essayer de supprimer le pilote 64 bits, en ajoutant le pilote 32 bits et voir comment ça se passe. Aussi, assurez-vous de tester votre ODBC pour vous assurer que vous avez une connection. Si vous après après que le time de vérifier le encoding.

Commencez par ouvrir l'option des outils d'administration. Vérifiez votre operating system. Si vous utilisez 64 bits, select le pilote de 64 bits. Ou c'est 32 bits puis select 32 bits.

S'il vous plaît ne faites pas de DSN user. Sélectionnez DSN système.

Par exemple, j'ai créé DSN Système dont le nom est "empcon1" puis en PHP, vous devriez écrire comme ceci:

 $dbNewName = "empcon1"; <br/> $dbUserName = "yash"; <br/> $dbPassword = "yash";<br/> $conn=odbc_connect($dbNewName,$dbUserName,$dbPassword); 

C'est tout .. Vous serez connecté.