OVH Cloud OVH Cloud

WD8/HF7 - champs indicés

2 réponses
Avatar
I.G.LOG
Bonjour,
Comment peut-on gérer les champs indicés HF7 avec une requete SQL ?
Le code ci-après plante alors que son équivalent avec les ordres HF
fonctionne.
Merci à tous

lReq est une source de données
lTxtSql = "select *" +...
" from GRDROIT GRDROIT" +...
" where (GRCLEUNIK = " + :IdGroupe + ")"
SI hexecuterequetesql(lReq,lTxtSql) ALORS
hLitPremier(lReq)
tantque pas hendehors()

// Ajout
lDroits = allouer un Droits
lDroits:Abrev = lReq.IDENTTYPE
lDroits:Ajout = lReq.DROITS[1]
lDroits:Modif = lReq.DROITS[2]
lDroits:Suppr = lReq.DROITS[3]
lDroits:Impri = lReq.DROITS[4]
lDroits:Consu = lReq.DROITS[5]
lDroits:Fill = lReq.DROITS[6]
:Droits:Item_Add(lDroits)

// Suivant
hLitSuivant(lReq)

FIN
HAnnuleDéclaration(lReq)
FIN

2 réponses

Avatar
Eric
Le 16 juin 2004 à 08:46, I.G.LOG nous disait :

Comment peut-on gérer les champs indicés HF7 avec une requete SQL ?
Le code ci-après plante alors que son équivalent avec les ordres HF
fonctionne.

lReq est une source de données
lTxtSql = "select *" +...
" from GRDROIT GRDROIT" +...
" where (GRCLEUNIK = " + :IdGroupe + ")"



Déjà, je vous déconseille d'utiliser les "SELECT *" pour des raisons de
performance (c'est indiqué dans toutes les bonnes docs SQL). Je le
remplacerais par :

SELECT GRDROIT.IDENTTYPE AS IdentType,
GRDROIT.DROITS[1] AS Droits1,
GRDROIT.DROITS[2] AS Droits2,...

lDroits:Abrev = lReq.IdentType
lDroits:Ajout = lReq.Droits1
lDroits:Modif = lReq.Droits2
...

--
Cordialement
Avatar
I.G.LOG
Merci pour les conseils.
Je vais essayer
Cordialement

"Eric" <ericb33+ a écrit dans le message de
news:uucgussrbuh9$
Le 16 juin 2004 à 08:46, I.G.LOG nous disait :

> Comment peut-on gérer les champs indicés HF7 avec une requete SQL ?
> Le code ci-après plante alors que son équivalent avec les ordres HF
> fonctionne.
>
> lReq est une source de données
> lTxtSql = "select *" +...
> " from GRDROIT GRDROIT" +...
> " where (GRCLEUNIK = " + :IdGroupe + ")"

Déjà, je vous déconseille d'utiliser les "SELECT *" pour des raisons de
performance (c'est indiqué dans toutes les bonnes docs SQL). Je le
remplacerais par :

SELECT GRDROIT.IDENTTYPE AS IdentType,
GRDROIT.DROITS[1] AS Droits1,
GRDROIT.DROITS[2] AS Droits2,...

lDroits:Abrev = lReq.IdentType
lDroits:Ajout = lReq.Droits1
lDroits:Modif = lReq.Droits2
...

--
Cordialement