Erreur de l'access oledb

edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

salut!
<<Erreur de l'acces oledb
numéro de l'erreur = 2032>> j'ai établie une connexion a une base de données oracle tout marche mais lorsque j'essaie une requête pour interroger ma base de données oracle j'ai ce message d'erreur:
Erreur de l'acces oledb
numero del'erreur = 2032
echec de l'ouverture de le connexion:
source de données <BEST1>
PROVIDER OLEDB <OraOLEDB.Oracle>
delai de l'erreur systeme:
source = OraOLEDB
error Number = -2147467259 (0*80004005)
je travaille avec windev 17, svp je ne sais quoi faire et j'ai besoin d'aide... Merci



3 réponses

nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
Hello,

La première chose a faire serai de donner le bout de code qui ne fonctionne pas x)

Plus clairement, vu ton poste je dirai que tu as un connecteur de déclaré dans ton analyse. (Je suppose que tu as bien les pilotes oracles et que la connexion fonctionne). Tes requêtes sont elles créer via le requeteur windev ou tu les écris à la main? Tes infos de connexion sont elles dynamiques ou statiques ? Ta connexion est elle bien ouverte?

Bref il faut un peu plus d info car en l etat tout ce que je peux te dire c'est que ta connexion ne fonctionne pas, mais ca va pas aider^^

naga
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
voici mon bout de code:

gsdReqClient est une Source de Données
MaConnexion est une Connexion

// Paramètres de la connexion

SI PAS HDécritConnexion("MaConnexion","system","Stage2016","BEST1","BEST1",hOledbOracle,hOLectureEcriture) ALORS
Info("parametres incorrecte")
Erreur(HErreurInfo())

SINON
// Ouverture de la connexion
HOuvreConnexion(MaConnexion)

Sablier()
// Exécution de la requête
SI PAS HExécuteRequêteSQL(gsdReqClient, hRequêteDéfaut, "SELECT * FROM CLIENT") ALORS
Erreur(HErreurInfo())
SINON
Info("La requête contient "+ HNbEnr(gsdReqClient) + " enregistrements.")
FIN

Sablier(Faux)
FIN


j'ai déjà une connexion via OLE DB établie dans mon analyse, tous les pilotes oracles sont bien installés et la connexion que j'ai établie fonctionne bien, mais lorsque j’exécute une requête ça ne marche pas
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
à cette ligne:


HExécuteRequêteSQL(gsdReqClient, hRequêteDéfaut, "SELECT * FROM CLIENT")



tu n indique pas de connexion. Aussi, généralement pour ce type d accès on passe le paramètre "hQueryWithoutCorrection". Donc:



HExécuteRequêteSQL(gsdReqClient,MaConnexion, hQueryWithoutCorrection, "SELECT * FROM CLIENT")



Ensuite je déconseil
 * 
et de plutot nommer les champs (pour plus de clareté entre autre)

dis moi ce que ca donne.
Naga
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
ah aussi, check ta connexion:


IF NOT HOuvreConnexion(MaConnexion) THEN
Erreur(HErreurInfo())
END


Et vérifie ton entrée dans tnsnames.ora
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention  
 
merci déjà mais ça marche pas toujours, voici le nouveau message d'erreur que ça renvoie:

Erreur de l’accès oledb
numéro de l'erreur = 2032
échec de l'ouverture de le connexion:
source de données <BEST1>
PROVIDER OLEDB <OraOLEDB.Oracle>
délai de l'erreur de la connexion :
description = Une opération OLE-DB en plusieurs étapes a généré des erreurs.
Vérifiez chaque valeur d’état OLE-DB disponible.
Aucun travail n'a été effectué.
source=Microsoft OLE DB Service Components
Error Number=-2147217887 (0*8004e21)

j'ai check ma onnexion en mode test ligne par ligne et apparemment c'est la qu'il y'a problème, ça n'ouvre pas la connexion...
tous mes entrées sont bonnes dans mon tnsnames.ora
d'ailleurs voici mon tnsnames.ora:

# tnsnames.ora Network Configuration File: \app\Edy\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

BEST1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Edy-PC)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = BEST1)
)
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
ok, essaye de décrire la connexion de cette manière:



HDécritConnexion("MaConnexion","system","Stage2016","BEST1","",hOledbOracle,hOLectureEcriture)



Normalement la source de données est suffisante en oracle.

Ah aussi je te conseil de bien fermet a connexion (HFermeConnexion) au cas ou (en fonction de ta config, tu peux avoir un nombre limité voir unique de connexion - dans le doute redémarrer ton service oracle histoire de couper toute connexion persistantes possibles)

naga
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention  
 
désolé mais rien... y'a renvoie toujours le message d'erreur qu'au début
si t'a un autre bout de code de connexion et me permettant d'interroger ma base de données, je suis prenant
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai le client natif pour windev 12 et non 17, la mise a jour sa se peut??
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
Tu peux acheter une licence de maj mais il faudra probablement que tu fasse une demande direct.
Les tarifs pour la maj vers la dernière version de windev:
https://www.pcsoft.fr/pcsoft/tarifs.htm#oracle

mais vu que dans ton cas tu veux une maj pour la version 17, il faudra surement que tu leur fasse directement une demande.
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention  
 
tout ce dont j'ai besoin c'est cette librairie et non de tout l'acces natif, stp si tu as ça installé tu peux m'envoyer ça par mail??? j'en serai plus que tout reconnaissant...
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
nan je penses qu'il y a une validation de licence donc la dll seule ne suffirai pas .. a test mais je sais pas. Par contre je n ai pas l accès en 17, je suis en 18 donc voila.
0
edmichs Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention  
 
t'inquiète pas pour la licence, je crois que sa pourrait le faire avec la dll de la version 18
0
nagaD.scar Messages postés 4272 Date d'inscription   Statut Membre Dernière intervention   252
 
non si chaque dll était portable d'une version à l autre ils vendraient pas beaucoup de licences ^^ (et finalement tu pourrai juste renommer ta dll de la version 11)

En fait la licence est soumise à une clef qui est inscrite lors de la génération de ton exe. S'il n y a pas de licence l exe ne sera pas en mesure de déployer la connexion.

La solution possible serai en fait de faire une dll (peu être qu un composant te le permettrai aussi) windev en version 11 de transaction avec oracle, que tu pourras ensuite importer dans ton projet en 18 pour exploiter indirectement l accès natif. Un peu lourd mais ca devrai fonctionner.
0