PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD12] Sequence oracle, windev
[WD12] Sequence oracle, windev
Débuté par PE, 02 oct. 2009 14:34 - 3 réponses
Posté le 02 octobre 2009 - 14:34
Bonjour

J'utilise windev 12 avec l'acces natif pour me connecter à une base de donnée oracle 11. J'utilise des ID automatiques qui sont traduits par une séquence dans oracle. Tout va bien.

Est-ce qu'il est possible de configurer windev pour qu'il utilise une sequence par table et non une sequence par projet?

Je me pose la question parce que nous avons déjà eu le cas de sequence oracle qui ont rebouclés (appli qui tourne pendant très longtemps, avec beaucoup de donnée) et qui crée régulièrement des problèmes. Mon idée serait dans un tel cas de ne bloquer les insertion sur une seule table et pas dans toute l'application.
Posté le 05 octobre 2009 - 19:17
J'utilise aussi les séquences d'Oracle pour crée mes Primary Key.

J'ai une séquence par table.

Par contre je n'ai rien fait de spécial sous windev car je crée mes tables directement sous Oracle, pas avec Windev.

En fait, l'analyse me sert uniquement à avoir les noms de tables et leurs rubriques respectives sous la main.

De plus, les numéros de séquences sont générés automatiquement par Oracle grace à un trigger "Before Insert".

Ex :

CREATE OR REPLACE TRIGGER <Nom du Trigger>
BEFORE INSERT
ON <Nom de ma Table>
FOR EACH ROW
BEGIN
SELECT <MaSequence>.NEXTVAL INTO :NEW.<NomRubriqueIdAutomatique> FROM dual;
END;
Posté le 12 octobre 2009 - 14:07
j'ai trouvé une syntaxe équivalente.

CREATE blablabla
BEGIN
:NEW.idindividu := SEQUENCE.NEXTVAL
END;
Posté le 18 septembre 2018 - 12:16
ds_seq is Data Source
sTrsql = "SELECT documentstatus_pk_seq.NEXTVAL as newnumber from dual"
HExecuteSQLQuery(ds_seq, ORACLE, hQueryWithoutCorrection, sTrsql)
Nextval_Windev is numeric = 0
HReadFirst(ds_seq)
Nextval = ds_seq.newnumber

Oracle 12C, Windev 20, OLEDB with Oracle OLEDB driver.

Bad thing about it is that it is a nex query every time, so not so fast.
Leaving the id field empty, null or "", which is normally filled by a trigger (which is enabled but it does not do the job) returnes a 0 (zero) in the record. Use the above, it works.:)
Windev, it stays a "DIY" software.