
Groupe de commandes "DB": Base de données
=========================================

Des exemples de ce groupe de commandes se trouvent dans le profil 
"Exemples de base de données" du "2ème Jeu de profils", lui-même 
sélectionné avec "Permute Jeu-Profil" du menu contextuel.

--> Attention !
La base de données de RK est basée sur le moteur MS Jet 3.5 (DAO 3.5).
Je suis désolé de dire que DAO 3.6 et les versions au-dessus ne sont pas 
supportés ! DAO 3.6 est utilisé par ME, 2000, XP etc.
Mais ce n'est pas une raison de ne pas utiliser les fonctions de la base 
de données de RK.
Dans quelques (ou tous les) cas, il est requis de préparer le système pour 
DAO 3.5. Bien que DAO 3.5 et DAO 3.6 seront installés parallèlement, il ne 
semble y avoir aucun problème.

Mais vous devez d'abord essayer si vous pouvez ouvrir une base de données 
avec RK : cliquez par exemple le bouton "Ouvre BD xls" du profil 
"Exemples de base de données".
Si vous recevez un message-erreur du type "Class not registered, looking 
for Object with CLSID ... long number ...) cela signifie que DAO 3.5 n'est 
pas disponible sur votre système.
Ensuite vous devez faire un 2ème contrôle : ouvrez le chemin "C:\Program 
Files\Fichiers communs\Microsoft Shared\dao". Si le dossier existe vous 
trouverez seulement le fichier dao360.dll. Cela signifie que DAO 3.6 est 
installé. Le fichier pour DAO 3.5 est dao350.dll.
Mais ce serait trop facile de copier le fichier dans ce dossier, parce que 
l'installation de DAO 3.5 a besoin de plus de fichiers et doit être 
correctement enregistrée.

C'est pourquoi la façon la plus simple de préparer votre système est de 
télécharger DAO 3.5 du site freewarehits.de et d'exécuter le fichier.exe 
sur votre système (après l'avoir dézipé).
L'archive-zip contient un fichier appelé vb5db.dll. Il doit être copié 
dans le dossier C:\WINDOWS\SYSTEM (s'il n'y est pas déjà).

J'ai essayé cette méthode sur une installation WinME et il a fonctionné 
immédiatement sans aucun problème. Mais il faut dire que je (l'auteur) ne 
peux donner aucune garantie et vous devez le faire à vos propres risques !

L'adresse directe pour télécharger est :
http://www.freewarehits.de/AddFiles/dao35.zip (3.2 mb)

Les banques de données suivantes (au minimun) seront assistées par RK :

- Access
- DBase 3/4/5
- Excel 3/4/5/8
- FoxPro 2/2.5/2.6/3
- Lotus WK 1/3/4
- Paradox 3/4/5
- Text

Access (.mdb), Excel (.xls) et Text (.txt) ont été testées avec succès.

Je renvoie le lecteur désireux de connaître les renseignements techniques 
au fichier-texte "DB" dans le dossier allemand.


Manière d'opérer
----------------
En premier lieu il faut ouvrir à chaque fois une banque de données.
RK travaille avec 2 listes internes. La première positionne une ligne, la 
2ème un champ. Le champ qui sera envoyé avec (DB.FIELD.SEND) à 
l'application dépend donc de ces 2 listes.
RK donne à l'application diverses commandes pour positionner ces lignes.
La commande se prête par exemple à l'envoi unique d'un champ.
D'autres commandes comme SET et INC sont utilisées pour l'envoi en série.

Règles générales :

1. Ouvrir une banque de donnée
2. Sélectionner la ligne dans la 1ère liste
3. Sélectionner le champ dans la 2ème liste
4. Envoyer


/DB.OPEN f[,t,p3,p4,p5]: Ouvre une base de données <f> (fichier), 
                         feuille <t> (table), p3/4/5 = paramètres 
------------------------ facultatifs

En saisissant une banque de données Access (.mdb) ou une feuille de calcul 
Excel (.xls), vous devez définir les paramètres <f> & <t>. Si le paramètre 
<t> n'est pas donné, une liste sera automatiquement affichée, qui devra 
être choisie dans une table (correspondant à DB.TABLE.SELECT).
En saississant des données-textes (.txt) séparées par TAB, il n'y aura que 
le paramètre <f>.
Dans ces 3 cas RK reconnaît bien-sûr le format et propose automatiquement 
les paramètres correspondants.
La position des paramètres sera traitée en priorité.
Dans d'autres cas (non testés) on devra au moins ajouter le paramètre p3.

Particularité des paramètres :

f : Fichier:    Nom = chemin du fichier

t : Table:  La feuille Excel établit, c'est connu, une table individuelle. 
            On ne peut saisir pour l'instant que ce que l'on donne. Pour 
            Access il s'agit d'une donnée unique de la banque de données. 
            Les textes sont pour ainsi dire en une dimension, de sorte que 
            le paramètre ici tombe.

            Pour Excel le nom de la table doit être suivi du signe $.
            Pour un fichier-texte, #txt est automatiquement créé.
            Pour Access le nom de la table reste inchangé.
            D'autres formats n'ont pas été testés.

            Dans des cas douteux, on laisse tomber le paramètre et on 
            choisit la table dans la boîte qui apparaît. Dans celle-ci on 
            va reconnaître le nom exacte de la table, pour ensuite le 
            reporter dans le paramètre "t".

p3: Connect:  Nom du type de la banque de données. Voici les descriptions 
              exactes (Access sans point-virgule): 

              Access
              dBASE III;
              dBASE IV;
              dBASE 5.0;
              Excel 3.0;
              Excel 4.0;
              Excel 5.0;
              Excel 8.0;
              FoxPro 2.0;
              FoxPro 2.5;
              FoxPro 2.6;
              FoxPro 3.0;
              Lotus WK1;
              Lotus WK3;
              Lotus WK4;
              Paradox 3.x;
              Paradox 4.x;
              Paradox 5.x;
              Text;

              RK utilise par défaut Excel 3.0. Cela fonctionne très 
              bien avec la version 8.0 et bien sûr avec les versions 
              plus anciennes.

p4: Rec-Set-Type:  p4 = 0 à 2. Cela permet de régler les types suivants:

                   0 : Table
                   1 : Dynaset  (réglage standard)
                   2 : Snapshot

                   En test (mdb/xls/txt) tout fonctionne sous "Dynaset", 
                   les tables également.
 
p5: Engine:   p5 = 0 à 1. Ici on peut choisir le réglage du moteur:

              0 : Jet  (MS, réglage standard)
              1 : ODBC


Exemple: {/DB.OPEN c:\data\db.xls}
Exemple: {/DB.OPEN c:\data\db.mdb,sheet1}
Exemple: {/DB.OPEN c:\data\db.xls,sheet1$}
Exemple: {/DB.OPEN c:\data\db.txt}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,0}
Exemple: {/DB.OPEN c:\data\db.xyz,sheet1,dBASE III;,2,1}

         --> note: Paramètre pour dbase inconnu !

Exemple: bouton "Ouvre BD xls" du profil "Exemples de base de données"



/DB.CLOSE .............: Ferme la base de données actuelle
------------------------

Elle permet de fermer une banque de données pour saisir la banque d'une 
autre application et libère ainsi la mémoire.

Exemple : bouton "Ferme BD" du profil "Exemples de base de données"


/DB.FIELD.ASK .........: Règle le n° du champ, défini par l'utilisateur 
------------------------ pendant le processus du scénario

Exemple : {/DB.FIELD.ASK}


/DB.FIELD.CLIP [len] ..: Copie le contenu du champ actuel dans le presse-
------------------------ papiers, longueur maximale [len] facultative

Exemple: bouton "Vers le pres.-p." du profil "Exemples de base de données"

Exemple : {/DB.FIELD.CLIP 25}

Dans le dernier exemple les 25 premiers caractères du champ actuel seront 
copiés dans le presse-papiers.


/DB.FIELD.INC .........: Incrémente le n° d'un champ
/DB.FIELD.DEC .........: Décroît le n° d'un champ
------------------------

Exemple : {/DB.FIELD.INC}


/DB.FIELD.NMB>VAR .....: Copie le n° du champ dans la variable VAR 
                         actuelle
/DB.FIELD.NMB<VAR .....: Règle le n° du champ à la variable VAR actuelle
------------------------

Ces commandes permettent l'échange du n° du champ avec les variables, 
ainsi les calculs sont possibles.

Exemple: 

{/BTCH.EXPLICIT}
{/DB.FIELD.NMB>VAR}
{/VAR.ADD 3}
{/DB.FIELD.NMB<VAR}


/DB.FIELD.SEND [len] ..: Envoie le contenu du champ actuel, longueur 
------------------------ maximale [len] facultative

Le champ est le plus petit élément de la base de données :
Base de données -> Table -> Ligne -> Champ
RK ne peut envoyer que celui-ci.
Toutes les lignes sont envoyées par une succession des commandes 
DB.FIELD.SEND dans le scénario. Avant l'envoi le pointeur de la ligne doit 
être positionné correctement.

Exemple: bouton "Sél. & Envoie" du profil "Exemples de base de données"

Exemple : {/DB.FIELD.SEND 15}

Dans ce 2ème exemple l'envoi sera de 15 caractères au maximum.


/DB.FIELD.SEND.FRMT str: Envoie le contenu du champ actuel au format 
------------------------ (str=###0.00 pour obtenir 1.30)

Cette commande permet le formatage des champs "nombres" et "dates".

Exemple : {/DB.FIELD.SEND.FRMT ##0.00}
Exemple : {/DB.FIELD.SEND.FRMT long date}

-> Remarque !
Pour les champs "dates" on trouve la description dans le fichier-texte 
"DATE" (DAT.FORMAT str), avec l'exception des "paramètres uniques".


/DB.Field.SET nmb .....: Règle le n° du champ à <nmb>
------------------------

Exemple: bouton "Sél. & Envoie" du profil "Exemples de base de données"


/DB.Field.VIEW ........: Affiche le contenu du champ actuel dans l'Aperçu 
------------------------ interne de texte

Exemple: {/DB.Field.VIEW}


/DB.PROP.VIEW .........: Affiche les propriétés de la base actuelle dans 
------------------------ l'Aperçu interne de texte

Exemple: bouton "Propriétés" du profil "Exemples de base de données"


/DB.REC.ASK ...........: Règle un n° d'enregistrement, défini par 
------------------------ l'utilisateur pendant le processus du scénario

Exemple: bouton "Envoie-boucle" du profil "Exemples de base de données"


/DB.REC.INC ...........: Incrémente le n° d'enregistrement
/DB.REC.DEC ...........: Décroît le n° d'enregistrement
------------------------

Exemple: bouton "Enreg. suivant" du profil "Exemples de base de données"


/DB.REC.NMB>VAR .......: Copie le n° d'enregistrement dans la variable VAR 
                         actuelle
/DB.REC.NMB<VAR .......: Règle le n° d'enregistrement à la variable VAR
------------------------ actuelle

Ces commandes permettent l'échange du n° d'enregistrement avec les 
variables, ainsi les calculs sont possibles.

Exemple: 

{/BTCH.EXPLICIT}
{/DB.REC.NMB>VAR}
{/VAR.ADD 3}
{/DB.REC.NMB<VAR}


/DB.REC.SELECT ........: Règle l'enregistrement de la ligne && le n° du 
                         champ en choisissant à partir des 2 listes dans 
------------------------ la fenêtre "Sélect. l'enreg."

Cettre fenêtre permet de choisir un champ arbitraire dans une ligne 
arbitraire. On sélectionne la ligne dans la liste de gauche et le champ 
dans la liste de droite. La sélection de la ligne - et du N° du champ - 
reste mémorisée à la fermeture de la fenêtre pour être envoyée à 
l'application, par exemple avec la commande de champ {/DB.FIELD.SEND}.
L'utilisateur trouvera rapidement les possibilités de réglage de la 
fenêtre. 
Un mot pour "Auto" : 
Ce réglage permet, comme dans Excel, de tester la largeur maximale 
autorisée pour tous les champs.
Les changements de réglage seront perdus si l'on clique sur "Cancel". 
Ils ne seront mémorisés qu'avec un clic sur "OK" et seront donc à 
disposition lors de la prochaine session.
Les fichiers-texte ne possèdent qu'un champ (0), c'est pourquoi la plupart 
des fonctions sont désactivées dans ce cas.

Exemple: bouton "A sélect. enr." du profil "Exemples de base de données"

--> Conseil
L'exécution du scénario peut être interrompue à l'aide de la commande 
"BTCH.EXITIF.CANCEL" si la boîte est fermée avec le bouton "Ferme".

--> Conseil
Vous pouvez vous déplacer avec les touches "Haut" et "Bas" dans les 
listes. De plus :

Curseur "Droite" : active la liste droite
Curseur "Gauche" : active la liste gauche
"Enter" ........: identique à OK
"Espace" .......: identique à OK


/DB.REC.SET nmb .......: Règle le n° d'enregistrement à <nmb>
------------------------

La ligne se compose d'un groupe de champs, par exemple "Prénom", "Nom", 
"Lieu", etc... Dans le cas d'Excel la ligne est une ligne de cellules et 
le champ une seule cellule.

Exemple : {/DB.REC.SET 155}


/DB.REC.VIEW [len] ....: Affiche tous les champs dans l'Aperçu interne de 
------------------------ texte, longueur max. [len] facultative

{/DB.REC.VIEW}
Exemple:  bouton "A sélect. enr." du profil "Exemples de base de données"

{/DB.REC.VIEW 75}
Exemple:  bouton "Enreg. suivant" du profil "Exemples de base de données"
 
Dans le dernier exemple, les 75 caractères (depuis la gauche) de tous les 
champs seront affichés.


/DB.TABLE.ASK-N .......: Règle le n° de la table, défini par l'utilisateur 
                         pendant le processus du scénario
/DB.TABLE.ASK-S .......: Règle le nom de la table, défini par 
------------------------ l'utilisateur pendant le processus du scénario

Exemple : {/DB.TABLE.ASK-N}
Exemple : {/DB.TABLE.ASK-S}

--> Conseil
Pour la commande ASK-S, l'exécution du scénario peut être interrompue à 
l'aide de la commande "BTCH.EXITIF.CANCEL" si la boîte est fermée avec 
le bouton "Ferme".


/DB.TABLE.SELECT ......: Choisit la table dans la liste
------------------------

En ouvrant une banque de données, on peut passer d'une table à l'autre.

Exemple: bouton "Change - table" du profil "Exemples de base de données"

--> Conseil
L'exécution du scénario peut être interrompue à l'aide de la commande 
"BTCH.EXITIF.CANCEL" si la boîte est fermée avec le bouton "Ferme".


/DB.TABLE.SET-N nmb ...: Règle le n° de la table <nmb>
/DB.TABLE.SET-S str ...: Règle le nom de la table <str>
------------------------

Exemple : {/DB.TABLE.SET-N 4}
Exemple : {/DB.TABLE.SET-S profit$}
