Forum Rules Petite remarque importante :

Lorsque vous postez un probléme en relation avec CRITERIA, merci de préciser la version du criteria, le systéme d'exploitation et la version de l'executeur ainsi que toutes informations permettant de connaitre le contexte d'execution . cela évite de poster un message pour vous demander ces précisions !!!

Pages: (3) [1] 2 3   ( Go to first unread post ) Reply to this topicStart new topicStart Poll

> MC MULTI-CRITERE, Problèmes en fichiers MC
Sandro
Posted: 20/02/07 18:14
Quote Post


User
*

Group: Belge
Posts: 12
Member No.: 1050
Joined: 06/01/06
Submissions: None Submitted
Downloads: No Files Downloaded



Bonjour,

Est-ce que quelqu'un pourrait m'indiquer la marche à suivre pour créer et utiliser correctement un fichier MC ?
Quel est l'ordre des commandes à passer : Assign, Cfile, Open, Key et Ckey, Link et Clink, Close ?
De plus, il faut, parait-il, redéfinir les key à chaque open du fichier pour les rubriques BCD avec décimales mais comment faire ?
Dois-je utiliser modext ou non ?
Si non, dois-je recopier ma clé dans le record pour pouvoir l'interroger ?

Merci de m'aiguiller un peu car il est extrêmement compliqué de trouver de la documentation. :angry:

Sandro
PMEmail Poster
Top
Marcelino
Posted: 20/02/07 18:18
Quote Post


Hyper User
*****

Group: Spanish
Posts: 532
Member No.: 717
Joined: 22/02/05
Submissions: None Submitted
Downloads: 1



J'ai quelques exemples.
Je cherche et ... :)

Documentation, exemples , c'est toujours la même chanson :rolleyes:
PM
Top
root
Posted: 20/02/07 18:33
Quote Post


God of the forum
*******

Group: Admin
Posts: 6098
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



il faut dupliquer la clé dans la data si tu veux que des éléments de la clé servent comme chanmps multi-critéres
PM
Top
Churlet
Posted: 20/02/07 18:39
Quote Post


Hyper User
*****

Group: _Membre
Posts: 520
Member No.: 16
Joined: 01/06/02
Submissions: None Submitted
Downloads: 2



L'ordre des déclarations des instructions et le suivant

Assign=nlog,nomfic,wr,mc:next,err,tampon,lg_tampon

Le tampon est une zone mémoire qui contient la description des rubriques pour l'exécuteur. sa longueur est calculé suivant la formule suivante Nbre_de_rubrique * 20 si pas modext *27 si modext

Open du fichier

Si erreur 40 faire CFILE du Fichier

Si le fichier existe déjà cfile ne créera que le dictionnaire

déclaration des Key avec ou sans modext afin d'alimenter la zone tampon ou utilisation de Lkey afin d'alimenter la zone tampon dynamiquement sans connaître la déclaration, Sous Windows modex alimente la zone tampon, attention lorsque l'on déclare deux handle sur le même fichier avec la même zone tampon il faut quand même faire un Lkey sous TwinServer (Pas sous Windows l'héritage est correcte)

Faire un Ckey pour cré les Key la première fois si pas Modext

Les link doivent être déclarer et créer seulement la première fois

Toujours faire un close du fichier avant de quitter l'application

Remarque sur DFILE

DFILE d'un Fichier MC détruit le dictionnaire, pour détruire le fichier il faut réassigner en SI puis faire un DFILE

A++
Yves
PMEmail PosterUsers Website
Top
coke38
Posted: 20/02/07 19:19
Quote Post


Hyper User
*****

Group: Modérateur
Posts: 630
Member No.: 81
Joined: 10/11/02
Submissions: None Submitted
Downloads: 6



Bonsoir,

QUOTE
il faut dupliquer la clé dans la data si tu veux que des éléments de la clé servent comme chanmps multi-critéres

Cette définition n'est vrai que si la clé primaire est interrogée en complément d'index secondaire dans la zone data... Si elle est interrogée seule c'est inutile, me semble-t-il :huh:
Il faudrait peut-être qu'ABAL++ évolu également sur ce point, car la clé est déjà automatiquement dupliquée dans les datas par Criteria (sécurité et aussi (je pense) cela doit servir pour l'interrogation en SQL-ODBC, car dans ce cas d'utilisation on ne redéclare pas explicitement la clé primaire dans les datas et pourtant elle est bien interrogeable dans un prédicat de la clause where avec d'autres index secondaires) <_<

Pour le reste commence par regarder l'aide en ligne, c'est toujours mieux que rien :rolleyes:

Sinon, il y a la documentation ABAL3++ en ligne ou tu trouveras quelques exemples dont tu pourras t'inspirer B) B) B)

Bon courage, le démarrage est un peu difficile (comme dans tous langage), mais ensuite c'est en pente douce...

Cordialement,

Coke
PM
Top
Marcelino
Posted: 20/02/07 20:14
Quote Post


Hyper User
*****

Group: Spanish
Posts: 532
Member No.: 717
Joined: 22/02/05
Submissions: None Submitted
Downloads: 1



Et si faisions-nous un tutorial à ce sujet ? :rolleyes:
PM
Top
Sandro
Posted: 20/02/07 20:18
Quote Post


User
*

Group: Belge
Posts: 12
Member No.: 1050
Joined: 06/01/06
Submissions: None Submitted
Downloads: No Files Downloaded



QUOTE (Marcelino @ 20/02/07 20:13)
Et si faisions-nous un tutorial à ce sujet ? :rolleyes:

Je pense qu'effectivement ce serait très intéressant car le manque de documentation est le point le plus déroutant pour celui qui veut se lancer à fond dans la programmation en ABAL / Critéria.
PMEmail Poster
Top
root
Posted: 20/02/07 20:23
Quote Post


God of the forum
*******

Group: Admin
Posts: 6098
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



QUOTE
Cette définition n'est vrai que si la clé primaire est interrogée en complément d'index secondaire dans la zone data... Si elle est interrogée seule c'est inutile, me semble-t-il 

c'est bien ce que je dis, il n'est pas possible de faire des posit sur des éléments de la clé , donc on duplique les élements de la clé dans la data et on fait des posit sur ces éléments dupliqués ;-)
PM
Top
jamie
Posted: 20/02/07 21:23
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Voici une exemple qui a été generé avec sing pour une fichier d'articles

Dabords les données


Dcl r_Articles$=2325
Field=m,r_Articles
Dcl e_Articles%
Dcl h_Articles%
Dcl t_Articles$=704
Dcl q_Articles$=1024
Dcl n_Articles:
Dcl i_Articles:
Ptr p_Articles$=16(2)
Dcl k_Articles$=16
Field=m,k_Articles
Dcl _REF_Articles$=16
Field=m,k_Articles
Dcl Filler=16
Dcl m_Articles#
Dcl b_Articles$=512
Field=m,b_Articles
Dcl _DESC_Articles$=48
Dcl _PTTC_Articles=8
Dcl _TVA_Articles%
Dcl _PAHT_Articles=8
Dcl _FREF_Articles$=16
Dcl _QTY_Articles%
Dcl _MIN_Articles%
Dcl _CMD_Articles%
Dcl _APP_Articles%
Dcl _FOTO_Articles$=32
Dcl _CODEFOUR_Articles$=32
Dcl _REFFOUR_Articles$=32
Dcl _DISPO_Articles$=8
Dcl _AUTO_Articles$=1
Dcl _PUHT_Articles=8
Dcl _REM_Articles$=1
Dcl _ERR_Articles%
Dcl _SEUIL_Articles%
Dcl _BARCODE_Articles$=32
Dcl _TARIF_Articles$=8
Dcl _PRIXCOND_Articles=8


Puis les instructions de demarrage

n_Articles=0
Forget p_Articles
m_Articles=/FF
h_Articles=Event(77)
Assign=h_Articles,"xarticle",MC,WR:Next,e_Articles,t_Articles
Open=h_Articles:Next,e_Articles
if ( e_Articles <> 0 )
Status = e_Articles
Cfile=h_Articles,D=512,K=16:Next,e_Articles
Else
Status = 0
Endif
Rkey=h_Articles:Next,e_Articles
Key=h_Articles,"DESC",48,A:Next,e_Articles
Key=h_Articles,"PTTC",8,B:Next,e_Articles
Key=h_Articles,"TVA",2,N:Next,e_Articles
Key=h_Articles,"PAHT",8,B:Next,e_Articles
Key=h_Articles,"FREF",16,A:Next,e_Articles
Key=h_Articles,"QTY",2,N:Next,e_Articles
Key=h_Articles,"MIN",2,N:Next,e_Articles
Key=h_Articles,"CMD",2,N:Next,e_Articles
Key=h_Articles,"APP",2,N:Next,e_Articles
Key=h_Articles,"FOTO",32,A:Next,e_Articles
Key=h_Articles,"CODEFOUR",32,A:Next,e_Articles
Key=h_Articles,"REFFOUR",32,A:Next,e_Articles
Key=h_Articles,"DISPO",8,A:Next,e_Articles
Key=h_Articles,"AUTO",1,A:Next,e_Articles
Key=h_Articles,"PUHT",8,B:Next,e_Articles
Key=h_Articles,"REM",1,A:Next,e_Articles
Key=h_Articles,"ERR",2,N:Next,e_Articles
Key=h_Articles,"SEUIL",2,N:Next,e_Articles
Key=h_Articles,"BARCODE",32,A:Next,e_Articles
Key=h_Articles,"TARIF",8,A:Next,e_Articles
Key=h_Articles,"PRIXCOND",8,B:Next,e_Articles
if (Status <> 0)
Ckey=h_Articles:Next,e_Articles
Link=h_Articles,"DESC":Next,e_Articles
Link=h_Articles,"PTTC":Next,e_Articles
Link=h_Articles,"TVA":Next,e_Articles
Link=h_Articles,"PAHT":Next,e_Articles
Link=h_Articles,"FREF":Next,e_Articles
Link=h_Articles,"QTY":Next,e_Articles
Link=h_Articles,"MIN":Next,e_Articles
Link=h_Articles,"CMD":Next,e_Articles
Link=h_Articles,"APP":Next,e_Articles
Link=h_Articles,"FOTO":Next,e_Articles
Link=h_Articles,"CODEFOUR":Next,e_Articles
Link=h_Articles,"REFFOUR":Next,e_Articles
Link=h_Articles,"DISPO":Next,e_Articles
Link=h_Articles,"AUTO":Next,e_Articles
Link=h_Articles,"PUHT":Next,e_Articles
Link=h_Articles,"REM":Next,e_Articles
Link=h_Articles,"ERR":Next,e_Articles
Link=h_Articles,"SEUIL":Next,e_Articles
Link=h_Articles,"BARCODE":Next,e_Articles
Link=h_Articles,"TARIF":Next,e_Articles
Link=h_Articles,"PRIXCOND":Next,e_Articles
Clink=h_Articles:Next,e_Articles
Endif


J'espere que ca vous aide a mieux comprendre le base

Jamie
PMEmail Poster
Top
coke38
Posted: 20/02/07 23:41
Quote Post


Hyper User
*****

Group: Modérateur
Posts: 630
Member No.: 81
Joined: 10/11/02
Submissions: None Submitted
Downloads: 6



Bonsoir,

QUOTE
c'est bien ce que je dis, il n'est pas possible de faire des posit sur des éléments de la clé , donc on duplique les élements de la clé dans la data et on fait des posit sur ces éléments dupliqués
Un instruction "Posit" oui, mais une instruction "Search" est possible, c'est que je voulais préciser, car dans ce cas seule la lecture de la clé primaire est possible. Je suis d'accord, c'est un cas un peu particulier ou seule les instructions posit porteraient sur un ou plusieurs index secondaires et les instructions search sur la clé primaire :wink: :wink:

Cas d'exemple, une base de données dont les fichiers doivent tous être déclarées au niveau MC, mais dont quelques tables ne nécessite pas de faire des jointures ou des interrogations multi-critères incluant la clé primaire... Bref, l'équivalent d'un fichier de niveau SI dans la Base de données :blink: :blink:

Bon maintenant, il est vrai que pour l'instant, il vaut mieux dupliquer la clé primaire dans les datas, afin de ne pas avoir à le regretter au cas où un posit deviendrait nécessaire plus tard.... :ph34r:

Sandro, tu as la chance d'avoir un Master d'ABAL (Jamie) en ligne, c'est mieux que la documentation pour débuter :wink:

Cordialement,

Coke

This post has been edited by coke38 on 20/02/07 23:44
PM
Top
m2nis
Posted: 21/02/07 07:43
Quote Post


Ultra User
****

Group: Membre
Posts: 288
Member No.: 475
Joined: 08/06/04
Submissions: 2 
Downloads: No Files Downloaded



QUOTE
Bon maintenant, il est vrai que pour l'instant, il vaut mieux dupliquer la clé primaire dans les datas, afin de ne pas avoir à le regretter au cas où un posit deviendrait nécessaire plus tard.... :ph34r:

Oui... Il m'est arrivé de devoir reprendre un fichier à cause de ça... Un peu dommage... :(

QUOTE
Sandro, tu as la chance d'avoir un Master d'ABAL (Jamie) en ligne, c'est mieux que la documentation pour débuter :wink:

C'est une très grande chance à ne pas en douter, mais le professeur va vite. Très vite. Pour débuter, c'est peut-être un peu dur. Et même quand on ne débute plus tout à fait, il y a des choses qui ont du mal à passer. :) Comme quoi, le cours ne profite pas seulement à celui qui le demande.

Par exemple, toutes les données que Jamie place avant les... données (512)? A quoi servent-elles? Au premier (et même deuxième) coup d'oeil, c'est loin d'être évident pour tout.

Autre exemple: event(77). Pas trouvé dans la doc. Et comme Jamie n'est pas documenté... :D

Autre question qui me vient en regardant l'exemple de Jamie:

Link=h_Articles,"DESC":Next,e_Articles
Link=h_Articles,"FREF":Next,e_Articles
Link=h_Articles,"MIN":Next,e_Articles

donne-t-il d'aussi bon résultat dans un posit contenant ces trois clés que

Link=h_Articles,"FREF,DESC,MIN":Next,e_Articles

(les trois clés sont pris totalement au hasard)?

Si quelqu'un :rolleyes: à un début de réponse...
PM
Top
Marcelino
Posted: 21/02/07 08:51
Quote Post


Hyper User
*****

Group: Spanish
Posts: 532
Member No.: 717
Joined: 22/02/05
Submissions: None Submitted
Downloads: 1



Il y a 21 rubriques, mais le tampon t_Article$=704. Pourquoi?

QUOTE
Ptr p_Articles$=16(2)

A quoi sert?

QUOTE
Dcl k_Articles$=16
Field=m,k_Articles
Dcl _REF_Articles$=16
Field=m,k_Articles
Dcl Filler=16

Pourquoi redefinir k_Articles en Filler? :blink:

QUOTE
h_Articles=Event(77)

C'est le premier nº logique libre?

:o Et je pensais que je savais quelque chose sur MC.
PM
Top
root
Posted: 21/02/07 12:58
Quote Post


God of the forum
*******

Group: Admin
Posts: 6098
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



On est d'accord coke38 mais si on fait un fichier MC c'est principalement pour faire des posit dessus.
PM
Top
Marcelino
Posted: 21/02/07 13:45
Quote Post


Hyper User
*****

Group: Spanish
Posts: 532
Member No.: 717
Joined: 22/02/05
Submissions: None Submitted
Downloads: 1



QUOTE
h_Articles=Event(77)

Quel version d'executeur. Seulement 3.xx ? :(
exa 2.1f retourne 0
wexa 2.2b retourne 0
wxa 3.1e retourne <>0
PM
Top
Marcelino
Posted: 21/02/07 18:09
Quote Post


Hyper User
*****

Group: Spanish
Posts: 532
Member No.: 717
Joined: 22/02/05
Submissions: None Submitted
Downloads: 1



QUOTE (Marcelino @ 21/02/07 14:44)
wxa 3.1e retourne <>0

Correction: retourne > 32 sous UseIt.
PM
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Pages: (3) [1] 2 3  Reply to this topicStart new topicStart Poll

 

webcron.org Get Firefox! prologue-community.org est monitoré par ikoula.fr Referenceur Gratuit www.prologue-community est mis en évidence sur internet grace à daubresse.fr
moteur de recherche - referencement
Conformément à l'article 34 de la loi "Informatique et Liberté" vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données qui vous concernent.
Pour l'exercer, merci de nous contacter : CONTACT US

www.prologue-community.org n'est pas enregistré à la CNIL
www.prologue-community.org est hébergé sur visit.fr

www.prologue-community.org est indépendant de la société Prologue
Une grande partie des logiciels et outils cités sur www.prologue-community.org sont des produits et marques déposées par la société Prologue


MKPortal M1.1 Rc1 ©2003-2005 All rights reserved
Page generated in 0.02123 seconds with 2 queries