Erreur de l'access oledb

Fermé
edmichs Messages postés 11 Date d'inscription mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 - 14 sept. 2016 à 11:05
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 16 sept. 2016 à 14:04
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
15 sept. 2016 à 10:37
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016
15 sept. 2016 à 11:06
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
15 sept. 2016 à 11:20
à 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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
15 sept. 2016 à 11:24
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 > nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023
15 sept. 2016 à 11:42
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
15 sept. 2016 à 11:57
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 > nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023
15 sept. 2016 à 12:29
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016
16 sept. 2016 à 09:48
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
16 sept. 2016 à 10:30
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 > nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023
16 sept. 2016 à 11:11
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
16 sept. 2016 à 11:29
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 mercredi 14 septembre 2016 Statut Membre Dernière intervention 16 septembre 2016 > nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023
16 sept. 2016 à 11:36
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 samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
16 sept. 2016 à 11:51
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