Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

9 réponses
Avatar
Loko
Bonjour

J'utilisais jusqu'a pr=E9sent le provider OLE DB d'Oracle pour acc=E8der =E0=

ma base via Windev, et cela fonctionnait bien.

J'ai achet=E9 et install=E9 l'acc=E8s natif Oracle et chang=E9 tous mes
fichiers pour utiliser cette nouvelle connexion, je vois bien les
donn=E9es mais quand je fais un HAjoute sur un fichier avec un ID
Automatique il ne me g=E9n=E8re plus automatiquement l'ID mais met z=E9ro =
=E0
chaque fois (donc erreur de clef primaire, etc...).

Quelqu'un a t-il d=E9j=E0 rencontr=E9 ce probl=E8me ?

J'utilise Windev 11 et Oracle 9 ou 10.

Merci

9 réponses

Avatar
J.B.
Le Thu, 03 Jan 2008 17:31:13 +0100, Loko a écrit:

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
Avatar
patrice
Les id automatique n'existe pas avec oracle.
il faut le faire à la main (le plus simple est d'utiliser des séquences)
"Loko" a écrit dans le message de
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
Avatar
Loko
Bonjour

On 3 jan, 17:55, "patrice" wrote:
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 ?
Avatar
J.B.
Le Thu, 03 Jan 2008 18:26:30 +0100, Loko a écrit:

Bonjour

On 3 jan, 17:55, "patrice" wrote:
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
Avatar
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é.


"J.B." a écrit dans le message de news:

Le Thu, 03 Jan 2008 18:26:30 +0100, Loko a écrit:

Bonjour

On 3 jan, 17:55, "patrice" wrote:
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


Avatar
Loko
Bonjour

On 3 jan, 19:17, "youpi" wrote:
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.
Avatar
Daniel
Loko a écrit :
Bonjour

On 3 jan, 19:17, "youpi" wrote:
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
;-)
Avatar
J.B.
Le Fri, 04 Jan 2008 09:21:47 +0100, Loko a écrit:

Bonjour

On 3 jan, 19:17, "youpi" wrote:
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
Avatar
Loko
On 4 jan, 10:19, Daniel wrote:

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 ? ;-)