PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Oracle et Windev
Oracle et Windev
Iniciado por greg_cailliez, jul., 11 2005 2:06 PM - 5 respostas
Publicado em julho, 11 2005 - 2:06 PM
Bonjour,

Grace à votre aide j'ai réussi à mettre en place l'accès odbc pour oracle. Je peux donc récupérer mes tables dans mon analyse. Seul soucis, elle ne sont pas proposé en lien pour mes champs... De quoi cela peut-il venir? Faut-il avoir l'accès natif?
Publicado em julho, 11 2005 - 3:53 PM
bonjour,
en réponse à ta question ... je ne sais pas mais l'accès natif est plutôt conseillé car, lors de nos développements, le driver odbc ne retournait pas toujours les erreurs des requêtes tandis que l'accès natif le faisait

salut
Publicado em julho, 12 2005 - 12:34 PM
York a écrit :
bonjour,
en réponse à ta question ... je ne sais pas mais l'accès natif est plutôt conseillé car, lors de nos développements, le driver odbc ne retournait pas toujours les erreurs des requêtes tandis que l'accès natif le faisait

salut


Sinon il est aussi préférable d'utiliser les liaisons OLE (c'est gratuit contrairement à l'accès natif oracle)

par exemple :

HDécritConnexion (conn, user, passwd, DSN, "","OraOLEDB.Oracle" , hOLectureEcriture)
HOuvreConnexion(conn)

....


Damien
Publicado em julho, 12 2005 - 10:27 PM
"Damien Hardy" <damien.hardy_a_supprimer@panel-intl.com> a écrit dans le
message de news:42d37609$1@news.pcsoft.fr...

York a écrit :
bonjour,
en réponse à ta question ... je ne sais pas mais l'accès natif est

plutôt conseillé car, lors de nos développements, le driver odbc ne
retournait pas toujours les erreurs des requêtes tandis que l'accès natif le
faisait

salut


Sinon il est aussi préférable d'utiliser les liaisons OLE (c'est gratuit

contrairement à l'accès natif oracle)

par exemple :

HDécritConnexion (conn, user, passwd, DSN, "","OraOLEDB.Oracle" ,

hOLectureEcriture)
> HOuvreConnexion(conn)

Pouvez-vous détailler une peu plus cette possibilité SVP car elle ne m'a
jamaie effleurer l'esprit. Un exemple avec connexion - simple select pour
affichage dans une table + deconnexion serait le bien venu.

--
Emmanuel Lecoester
Publicado em julho, 13 2005 - 12:10 PM
Emmanuel Lecoester a écrit :
Pouvez-vous détailler une peu plus cette possibilité SVP car elle ne m'a
jamaie effleurer l'esprit. Un exemple avec connexion - simple select pour
affichage dans une table + deconnexion serait le bien venu.

--
Emmanuel Lecoester




Un exemple simple :

conn est une chaine = "myconn"
user est une chaine = "scott"
passwd est une chaine = "tiger"
DSN est une chaine = "mydatabase"
DATA est une source de données
QUERY est une chaine = "SELECT * FROM mytable"

//verifier le nom DSN dans la config du client Oracle (%oracle_dir%\network\ADMIN\TNSNAMES.ORA)

HDécritConnexion (conn,user,passwd,DSN,"","OraOLEDB.Oracle",hOLectureEcriture)
HOuvreConnexion(conn)
HExécuteRequêteSQL(DATA,conn,hRequêteSansCorrection,QUERY)
TANTQUE PAS HEnDehors(DATA)
info(DATA.COL_1, DATA.COL_2)
HLitSuivant(Q:DATA)
FIN
HAnnuleDéclaration(DATA)
HFermeConnexion(conn);



Bien sur la connexion peut etre persistante pour toute les fenêtres de l'application (il suffit de l'ouvrir dans la
fenêtre principale)

Pour gerer les transactions il suffit d'encadrer les différenete requete par les fonctions HTransactionDebut(),
HTransactionFin() (commit), HTransactionAnnule() (rollback)... sinon c'est commit par defaut à chaque requête

Damien
Publicado em julho, 13 2005 - 12:47 PM
Damien Hardy a écrit :
Emmanuel Lecoester a écrit :

Pouvez-vous détailler une peu plus cette possibilité SVP car elle ne m'a
jamaie effleurer l'esprit. Un exemple avec connexion - simple select pour
affichage dans une table + deconnexion serait le bien venu.

--
Emmanuel Lecoester





Un exemple simple :

conn est une chaine = "myconn"
user est une chaine = "scott"
passwd est une chaine = "tiger"
DSN est une chaine = "mydatabase"
DATA est une source de données
QUERY est une chaine = "SELECT * FROM mytable"

//verifier le nom DSN dans la config du client Oracle (%oracle_dir%\network\ADMIN\TNSNAMES.ORA)

HDécritConnexion (conn,user,passwd,DSN,"","OraOLEDB.Oracle",hOLectureEcriture)
HOuvreConnexion(conn)
HExécuteRequêteSQL(DATA,conn,hRequêteSansCorrection,QUERY)
TANTQUE PAS HEnDehors(DATA)
info(DATA.COL_1, DATA.COL_2)
HLitSuivant(Q:DATA)
FIN
HAnnuleDéclaration(DATA)
HFermeConnexion(conn);



Bien sur la connexion peut etre persistante pour toute les fenêtres de l'application (il suffit de l'ouvrir dans la
fenêtre principale)

Pour gerer les transactions il suffit d'encadrer les différenete requete par les fonctions HTransactionDebut(),
HTransactionFin() (commit), HTransactionAnnule() (rollback)... sinon c'est commit par defaut à chaque requête

Damien



une petite erreur s/Q:DATA/DATA/ (oui je me sert d'une classe pour faire mes requêtes :)

Damien