Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2007, 14h58   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Par défaut [ODBC / DB2] Connexion impossible

Bonjour,

j'essaie de lire une base DB2 via ODBC, depuis un script VB lancé depuis QTP (outil de test).
Je ne peux plus me connecter depuis mon poste, alors qu'un autre poste y arrive sans problème.

L'erreur remontée par QTP est :
" obj_Connection.Open(GetDBParameters())".
Description: [Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed.
En activant le debug ODBC, je trouve :
CV_NRP_WAP_001 115c-e6c EXIT SQLDriverConnectW with return code -1 (SQL_ERROR)
HDBC 08291690
HWND 00000000
WCHAR * 0x74329A38 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x74329A38
SWORD 2
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

DIAG [IM004] [Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed (0)

CV_NRP_WAP_001 115c-e6c ENTER SQLGetDiagRecW
SQLSMALLINT 2
SQLHANDLE 08291690
SQLSMALLINT 1
SQLWCHAR * 0x07CDD724 (NYI)
SQLINTEGER * 0x07CDD308
SQLWCHAR * 0x07CDD324 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x07CDD30C

CV_NRP_WAP_001 115c-e6c EXIT SQLGetDiagRecW with return code 0 (SQL_SUCCESS)
autrement dit, l'erreur affichée par QTP est générée par une erreur précédente. Mais quelle peut bien en être la raison ?

Les différents paramètres passés sont ok, le DSN ODBC répond vite et bien si on interroge via MS-Query...

J'ai reinstallé récemment le drivers ODBC de DB2 (v 8), sans succès.

Quelqu'un aurait une piste pour m'aider ?
Merci
stefCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2007, 07h02   #2
Membre habitué
 
Inscription : septembre 2004
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 123
Points : 127
Points : 127
Bonjour,

Ce post concerne le même type de problème :http://developpez.net/forums/showthread.php?p=1303905


Alex.
alex. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h12   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Effectivement, mais, malheursement, il n'y a pas de solution claire...

Quant à moi, j'apporte quelque précisions : mon GetparametersDB() est inutile pour m'aider. J'ai donc tracé les paramètres passés à obj_Connection.Open.

J'appelle donc ainsi :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Public FUNCTION SQLExecute (ByVal str_Query)
 
        Dim obj_Connection, obj_Recordset, tbl_Ret
        SET obj_Connection = CreateObject("ADODB.Connection")
 
         ' Instruction problematique...
        obj_Connection.Open("DSN=databasename;UID=userid;PWD=pwd")
 
        Set obj_Recordset = obj_Connection.Execute(str_Query)
        ...
Si des fois ca peut éclairer quelqu'un, parceque là, je seche complet. Bientôt 2j à retourner le pb dans tous les sens, nada !!! Aucune connexion sur aucune base (5 base en tout) ne passe plus (alors que ca passait en version Client Windows 7....)

Merci d'avance. Un café à qui trouve la soluce
stefCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h56   #4
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Ta DB est en version 8 ?

Car nous avons eu des problèmes avec le client 7 et DB2 8 mais aussi avec le client 8 et DB2 7
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 17h11   #5
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Oui, tout est en 8.2 (client et base).

le plus étrange est que nous avons un poste en v7, qui fonctionne nickel. Sur d'autres postes, ca a commencé par des connexions très longues (>30sec). On a donc fait la mise à jour vers la v8, et là, plus rien... du moins, lorsqu'on passe par QTP et ses scripts en VBS. Via MS-Query, tout va bien, via Excel, les fichiers DSN ne sont pas reconnus comme corrects,...
stefCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2007, 09h40   #6
Membre expérimenté
 
Avatar de rberthou
 
Inscription : septembre 2007
Messages : 609
Détails du profil
Informations personnelles :
Âge : 48

Informations forums :
Inscription : septembre 2007
Messages : 609
Points : 542
Points : 542
Si tu as changé de db2client regarde du coté des binds si tu n'as pas rebinder. (mais normalement dans ce cas l'erreur doit etre plus explicite)
rberthou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 13h57   #7
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Après de nombreux tests croisés, en utilisants différentes API, on a pu se rendre compte que le problème n'était ni côté DB2, ni côté ODBC, mais bien côté QTP.

Après avoir escaladé 2 ou 3 niveau de support, on a reçu cette réponse pour le moins étonnante, mais qui fonctionne... Je vous la livre telle que, des fois que cela puisse servir... En gros, un fichier .local, de 1ko fout la grouille...


Une précision qui a son importance : le message d'erreur ci-dessous était celui d'un collègue. Pour ma part, j'avais :
"obj_Connection.Open("DSN=<DSN>;UID=<userid>;PWD=<password>")".
Description: [Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed.'".
le truc fonctionne aussi pour cette erreur




Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Problem ID: 47292


--------------------------------------------------------------------------------

Product: 
QTP Version Not Relevant
QTP 8.2
QTP 9.0
 Ext(s): 
Add-in Not Relevant
 

Topics: 
Database Interface
Error Message Troubleshooting
 OS: 
Windows Platform Not Relevant
 
Creation Date: 
10 Oct 2006  Last Modified Date:
19 Aug 2007 



--------------------------------------------------------------------------------

Problem Description: Error: "[IBM][CLI Driver] SQL 1042C An unexpected system error occured. SQLSTATE=58004" 

The user receives a "[IBM][CLI Driver] SQL 1042C An unexpected system error occured. SQLSTATE=58004" error message when trying to connect to an IBM DB2 client using a Database Checkpoint or ADODB statements within the script. 

Diagnosis: The existence of the <Quicktest Professional>/bin/QTPro.exe.Local file conflicts with the ability of ADODB to open the DB2 client. 



--------------------------------------------------------------------------------

Solution: Rename the QTPro.exe.Local file in the bin directory 

The QTPro.exe.Local file is used for redirection of DLLs that QuickTest Professional loads. In the case of coexistence problems with other Mercury products, the file instructs Windows API to load DLLs from the <QuickTest Professional>\bin directory instead of other directories. This is important for the coexistence between QuickTest Professional, LoadRunner, and old versions of Astra LoadTest. 

Renaming this file should solve the problem. QuickTest Professional will work fine without QTPro.exe.Local, unless LoadRunner or Astra LoadTest are installed on the machine. 

1. Close QuickTest Professional.
2. Open Windows Explorer, and navigate to the QuickTest Professional installation directory.
3. In the bin directory, locate the QTPro.exe.Local file, and rename it (for example, QTPro.exe.Local.old).
4. Restart QuickTest Professional. 

After renaming the file, QuickTest Professional should be able to connect to the database and work with it as expected. If the error continues, try removing unneeded parameters in the connection string.
stefCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h26.


 
 
 
 
Partenaires

Hébergement Web