2016-07-07 1 views
1

J'ai une HTA de longue date qui fonctionnait parfaitement sur une machine Windows 8 en cours d'exécution IE 10.Javascript HTA ADODB Connexion sur Windows 10/IE 11

Depuis la mise à niveau vers Windows 10/IE 11 l'application peut maintenant plus parler à une base de données SQL en utilisant la même base de code.

Auparavant ce code a parfaitement fonctionné:

var connectionstring = "Driver={SQL Server Native Client 10.0};Server=xxxxx;Database=x;Uid=xxxxx;Pwd=xxxxxx"; 

this.getDataFromDB = function (SQLQuery, returnType) 
{ 
    if (Logger) Logger.StartLogItem(Logger.newLoggerMessage("DB COMS - CONFIG DATABASE", "Getting data from config DB : SQL Command Sent - " + SQLQuery, LogEntryType.Task)); 
    var conn = new ActiveXObject("ADODB.Connection"); 
    conn.ConnectionTimeout = 20; 
    conn.CommandTimeout = 20; 
    var rs = new ActiveXObject("ADODB.Recordset"); 

    try 
    { 
     conn.Open(connectionstring); 
     rs.Open(SQLQuery, conn); 
     var respObj = { data: [] }; 
     while (!rs.EOF) 
     { 
      switch (returnType) 

Cependant maintenant il arrive à la conn.Open (connectionstring) et échoue avec:

erreur Extraction de données la base de données: [Microsoft] [ SQL Server Native Client 10.0] Fournisseur de canaux nommé: impossible d'ouvrir une connexion à SQL Server [53].

La seule façon que j'ai pu contourner cela est de créer manuellement une source de données dans l'administration source de données ODBC dans le Panneau de configuration, puis utiliser la chaîne de connexion:

var connectionstring = "DSN=FCMADMIN;Uid=xxxxx;Pwd=xxxxx;" 

Ensuite, tout fonctionne parfaitement à nouveau ! Alors, pourquoi ne puis-je pas utiliser l'ancienne chaîne de connexion? Je ne suis pas sûr si c'est un problème de Windows 10 ou IE 11. Le problème est - cette application est déployée à 1000 de poste de travail, donc ne veulent pas vraiment les amener à créer une source de données utilisateur ODBC sur chaque machine.

Répondre

0

Désolé - stupide erreur d'écolier. Dans le même temps, le nom du serveur a changé pour contenir une instance i.e il est devenu SQLServer \ Instance1

En entrant cela dans la chaîne de connexion j'avais oublié d'échapper à la barre oblique !!!!! Quand je l'ai changé en SQLServer \ Instance1, tout a commencé à fonctionner!