Problème d'ID Automatique avec l'accès natif Oracle

Le
Loko
Bonjour

J'utilisais jusqu'a présent le provider OLE DB d'Oracle pour accèder à=

ma base via Windev, et cela fonctionnait bien.

J'ai acheté et installé l'accès natif Oracle et changé tous mes
fichiers pour utiliser cette nouvelle connexion, je vois bien les
données mais quand je fais un HAjoute sur un fichier avec un ID
Automatique il ne me génère plus automatiquement l'ID mais met zéro =
à
chaque fois (donc erreur de clef primaire, etc).

Quelqu'un a t-il déjà rencontré ce problème ?

J'utilise Windev 11 et Oracle 9 ou 10.

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
J.B.
Le #14559271
Le Thu, 03 Jan 2008 17:31:13 +0100, Loko
Bonjour

J'utilisais jusqu'a présent le provider OLE DB d'Oracle pour accèder à
ma base via Windev, et cela fonctionnait bien.

J'ai acheté et installé l'accès natif Oracle et changé tous mes
fichiers pour utiliser cette nouvelle connexion, je vois bien les
données mais quand je fais un HAjoute sur un fichier avec un ID
Automatique il ne me génère plus automatiquement l'ID mais met zéro à
chaque fois (donc erreur de clef primaire, etc...).

Quelqu'un a t-il déjà rencontré ce problème ?

J'utilise Windev 11 et Oracle 9 ou 10.

Merci



Bonjour, pour ce qui nous concerne nous utilisons les sequences Oracle
sous Oracle et non les ID automatiques.

--
J.Bratières
patrice
Le #14559261
Les id automatique n'existe pas avec oracle.
il faut le faire à la main (le plus simple est d'utiliser des séquences)
"Loko" news:
Bonjour

J'utilisais jusqu'a présent le provider OLE DB d'Oracle pour accèder à
ma base via Windev, et cela fonctionnait bien.

J'ai acheté et installé l'accès natif Oracle et changé tous mes
fichiers pour utiliser cette nouvelle connexion, je vois bien les
données mais quand je fais un HAjoute sur un fichier avec un ID
Automatique il ne me génère plus automatiquement l'ID mais met zéro à
chaque fois (donc erreur de clef primaire, etc...).

Quelqu'un a t-il déjà rencontré ce problème ?

J'utilise Windev 11 et Oracle 9 ou 10.

Merci
Loko
Le #14559251
Bonjour

On 3 jan, 17:55, "patrice"
Les id automatique n'existe pas avec oracle.
il faut le faire à la main (le plus simple est d'utiliser des séquence s)



Oui, je veux bien, mais pouvez vous qd meme m'expliquer pourquoi l'ID
Automatique fonctionne bien avec l'accès OLE DB sur Oracle et pas avec
l'accès natif ?
J.B.
Le #14559241
Le Thu, 03 Jan 2008 18:26:30 +0100, Loko
Bonjour

On 3 jan, 17:55, "patrice"
Les id automatique n'existe pas avec oracle.
il faut le faire à la main (le plus simple est d'utiliser des séquences)



Oui, je veux bien, mais pouvez vous qd meme m'expliquer pourquoi l'ID
Automatique fonctionne bien avec l'accès OLE DB sur Oracle et pas avec
l'accès natif ?



Je ne peux que **supposer** qu'il est simulé par un truc du genre
max(truc)+1 ce qui ne marche pas vraiment
avec des accès concurrents non committés.

--
J.Bratières
youpi
Le #14559231
pour t'en sortir :

- tu cré une sequence sur oracle
- la "default value" du champs ID de ta table branché sur le nextid de la
sequence.

Brancher la valeur par defaut d'un champ sur un compteur ca se fait tout
seul sur SQLserveur mais j'ai un doute sur l'automatisme de la chose sous
oracle.
Sinon un trigger before insert et c'est reglé.


"J.B."
Le Thu, 03 Jan 2008 18:26:30 +0100, Loko
Bonjour

On 3 jan, 17:55, "patrice"
Les id automatique n'existe pas avec oracle.
il faut le faire à la main (le plus simple est d'utiliser des séquences)



Oui, je veux bien, mais pouvez vous qd meme m'expliquer pourquoi l'ID
Automatique fonctionne bien avec l'accès OLE DB sur Oracle et pas avec
l'accès natif ?



Je ne peux que **supposer** qu'il est simulé par un truc du genre
max(truc)+1 ce qui ne marche pas vraiment
avec des accès concurrents non committés.

--
J.Bratières


Loko
Le #14559221
Bonjour

On 3 jan, 19:17, "youpi"
pour t'en sortir :

- tu cré une sequence sur oracle
- la "default value" du champs ID de ta table branché sur le nextid de l a
sequence.

Brancher la valeur par defaut d'un champ sur un compteur ca se fait tout
seul sur SQLserveur mais j'ai un doute sur l'automatisme de la chose sous
oracle.
Sinon un trigger before insert et c'est reglé.




Merci pour ta réponse.

J'ai une contrainte de réutilisation de tables existantes sans pouvoir
les modifier car elles sont également utilisées par d'autres logiciels
hors Windev que je n'aurais pas le temps de modifier également. Du
coup l'utilisation de séquences ne me semble pas possible dans ce cas
précis.

Je pense donc me baser sur un trigger. Je suis débutant en Windev et
n'ai pas encore utilisé les triggers. Tu évoquais les triggers de
Windev ou bien ceux d'Oracle ? Lesquels me conseillent tu ?

Merci
Loko


PS : En aparté, je suis pour le moment super déçu par cet accès
natif :
- il était censé etre plus rapide mais j'ai pas noté d'amélioration
(peut etre sur des transactions très lourdes)
- il était censé améliorer la synchronisation Windev<-->Oracle
(notamment les liaisons) mais ce n'est pas le cas
- je pensais qu'il m'éviterait de devoir installer le client Oracle
sur tous les postes mais ca reste nécessaire, donc pas d'amélioratio
du déploiement.
Daniel
Le #14559211
Loko a écrit :
Bonjour

On 3 jan, 19:17, "youpi"
pour t'en sortir :

- tu cré une sequence sur oracle
- la "default value" du champs ID de ta table branché sur le nextid de la
sequence.

Brancher la valeur par defaut d'un champ sur un compteur ca se fait tout
seul sur SQLserveur mais j'ai un doute sur l'automatisme de la chose sous
oracle.
Sinon un trigger before insert et c'est reglé.




Merci pour ta réponse.

J'ai une contrainte de réutilisation de tables existantes sans pouvoir
les modifier car elles sont également utilisées par d'autres logiciels
hors Windev que je n'aurais pas le temps de modifier également. Du
coup l'utilisation de séquences ne me semble pas possible dans ce cas
précis.

Je pense donc me baser sur un trigger. Je suis débutant en Windev et
n'ai pas encore utilisé les triggers. Tu évoquais les triggers de
Windev ou bien ceux d'Oracle ? Lesquels me conseillent tu ?

Merci
Loko


PS : En aparté, je suis pour le moment super déçu par cet accès
natif :
- il était censé etre plus rapide mais j'ai pas noté d'amélioration
(peut etre sur des transactions très lourdes)
- il était censé améliorer la synchronisation Windev<-->Oracle
(notamment les liaisons) mais ce n'est pas le cas
- je pensais qu'il m'éviterait de devoir installer le client Oracle
sur tous les postes mais ca reste nécessaire, donc pas d'amélioratio
du déploiement.





Il parlait des triggers Oracle.
Il n'y a pas qu'en Windev que tu débutes ;-)

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
J.B.
Le #14559201
Le Fri, 04 Jan 2008 09:21:47 +0100, Loko
Bonjour

On 3 jan, 19:17, "youpi"
pour t'en sortir :

- tu cré une sequence sur oracle
- la "default value" du champs ID de ta table branché sur le nextid de
la
sequence.

Brancher la valeur par defaut d'un champ sur un compteur ca se fait tout
seul sur SQLserveur mais j'ai un doute sur l'automatisme de la chose
sous
oracle.
Sinon un trigger before insert et c'est reglé.




Merci pour ta réponse.

J'ai une contrainte de réutilisation de tables existantes sans pouvoir
les modifier car elles sont également utilisées par d'autres logiciels
hors Windev que je n'aurais pas le temps de modifier également. Du
coup l'utilisation de séquences ne me semble pas possible dans ce cas
précis.

Je pense donc me baser sur un trigger. Je suis débutant en Windev et
n'ai pas encore utilisé les triggers. Tu évoquais les triggers de
Windev ou bien ceux d'Oracle ? Lesquels me conseillent tu ?

Merci
Loko


PS : En aparté, je suis pour le moment super déçu par cet accès
natif :
- il était censé etre plus rapide mais j'ai pas noté d'amélioration
(peut etre sur des transactions très lourdes)
- il était censé améliorer la synchronisation Windev<-->Oracle
(notamment les liaisons) mais ce n'est pas le cas
- je pensais qu'il m'éviterait de devoir installer le client Oracle
sur tous les postes mais ca reste nécessaire, donc pas d'amélioratio
du déploiement.




Les séquences Oracle ne sont PAS dans les tables et leur usage ne modifie
donc pas la
structure des tables.


--
J.Bratières
Loko
Le #14555381
On 4 jan, 10:19, Daniel
Il parlait des triggers Oracle.
Il n'y a pas qu'en Windev que tu débutes ;-)



euh... si.

Je vois pas en quoi il est évident qu'il parlait des triggers Oracle
et pas de ceux de Windev, car sauf erreur de ma part les 2 peuvent
convenir, non ? ;-)
Publicité
Poster une réponse
Anonyme