SCR/AL1 - TOME IV. Les librairies internes
3.1 Gestion des bases de données
Syntax
long IS_dup_dbase(is, toname, stop, disp)
ISAM *is;
char *toname;
int stop, disp;
Description
Duplicie la database is dans un ISAM de même structure et de nom toname.
Le paramètre stop décide si le processus s'arrête (1) ou non (0) en cas d'erreur. Un message est affiché avant l'arrêt éventuel.
Le paramètre disp permet d'afficher (1) ou non (0) un compteur avec le nombre de records copiés.
Utilisation
Cette fonction est utilisée pour agrandir ou diminuer la taille des records d'un ISAM, ou encore pour recréer une database contenant des index DUP qui ne devraient pas s'y trouver (après une modification des INDEX par exemple).
Valeur retournée
Nombre de records copiés correctement.
Exemple
long nb_recs;
nb_recs = IS_dup_dbase(is_prod, "newprod", 0, 0);
printf("%ld records de prod copiés dans newprod\n", nb_recs);
Voir également
IS_copy_fn(), IS_create_dbase()
File s_iscp.c
long IS_copy(is1, is2, stop, disp)
long IS_copy_fn(is1, is2, stop, disp, fn)
long IS_dup_dbase(is, toname, stop, disp)
IS_copy (file s_iscp.c:123)
Syntax
long IS_copy(is1, is2, stop, disp)
ISAM *is1, *is2;
int stop, disp;
Description
Copie la database is2 dans is1, record par record, sur la longueur la plus petite des deux fichiers. Le record de is1 est initialement fixé à 0 pour éviter que des résidus de buffer se placent dans les records.
Le paramètre stop décide si le processus s'arrête (1) ou non (0) en cas d'erreur. Un message est affiché avant l'arrêt éventuel.
Le paramètre disp permet d'afficher (1) ou non (0) un compteur avec le nombre de records copiés.
Utilisation
Cette fonction est utilisée pour agrandir ou diminuer la taille des records d'un ISAM, ou encore pour recréer une database contenant des index DUP qui ne devraient pas s'y trouver (après une modification des INDEX par exemple).
Valeur retournée
Nombre de records copiés correctement.
Exemple
long nb_recs;
nb_recs = IS_copy(is_newprod, is_prod, 0, 0);
printf("%ld records de prod copiés dans newprod\n", nb_recs);
Voir également
IS_copy_fn(), IS_create_dbase()
IS_copy_fn (file s_iscp.c:42)
Syntax
long IS_copy_fn(is1, is2, stop, disp, fn)
ISAM *is1, *is2;
int stop, disp;
int (*fn)();
Description
Copie la database is2 dans is1, record par record, sur la longueur la plus petite des deux fichiers. Le record de is1 est initialement fixé à 0 pour éviter que des résidus de buffer se placent dans les records.
Le paramètre stop décide si le processus s'arrête (1) ou non (0) en cas d'erreur. Un message est affiché avant l'arrêt éventuel.
Le paramètre disp permet d'afficher (1) ou non (0) un compteur avec le nombre de records copiés.
Le pointeur de fonction fn permet de filtrer les records avant de les écrire. La fonction fn est appelée comme suit :
fn(is1, is2);
Si fn retourne 0, le record est copié. Sinon, il est sauté.
La lecture de is2 se fait dans l'ordre physique du fichier.
Utilisation
Cette fonction est utilisée pour agrandir ou diminuer la taille des records d'un ISAM, ou encore pour recréer une database contenant des index DUP qui ne devraient pas s'y trouver (après une modification des INDEX par exemple).
Valeur retournée
Nombre de records copiés correctement.
Exemple
long nb_recs;
nb_recs = IS_copy_fn(is_newprod, is_prod, 0, 0, select);
printf("%ld records de prod copiés dans newprod\n", nb_recs);
Voir également
IS_copy_fn(), IS_create_dbase()
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be