SCR/AL1 - TOME III. Les librairies utilitaires
Syntax
OCSR *OQuery(ODSN *odsn, char *qury)
Description
Effectue une recherche (SELECT) et crée un "curseur" sur le dataset résultat. Bien que n'importe quelle requête puisse être exécutée par cette fonction, il est préférable de ne l'utiliser que pour les SELECT. La fonction OSql() permet d'exécuter une requête quelconque.
Le résultat est obtenu sous forme d'un dataset dans lequel on peut se déplacer à l'aide de ONext() ou OPrevious() (selon le driver, cette dernière fonction peut ne pas fonctionner).
Ce dataset est static. Il ne connaît donc pas les modifications apportées par un autre utilisateur aux records de la base de données.
Pour obtenir le pointeur sur la valeur d'une colonne, il suffit d'appeler la fonction OGetCol(). Si on ignore le type de la colonne, celui-ci peut être obtenu en consultant la structure ocsr->otbl.
Aucun enregistrement n'est lu par la fonction OQuery(). Il faut appeler ONext() pour que le premier enregistrement (s'il y en a un) soit lu.
Valeur retournée
Pointeur vers une structure OCSR qui contient les informations sur les colonnes de la table résultant de le requête. Pointeur nul en cas d'erreur.
Exemple
ODSN *odsn = 0;
OCSR *ocsr = 0;
odsn = OOpenDSN(dsname, user, pwd);
if(odsn == 0) {
printf("Error : Cannot open %s\n", dsname);
}
else {
ocsr = OQuery(odsn, "SELECT * from clients");
if(ocsr == 0)
printf("Query failed : %s\n", OError());
else {
while(ONext(ocsr) == 0) {
OPrintRow(ocsr);
}
OFreeOCSR(ocsr);
}
}
OCloseDSN(odsn);
}
Voir également
ONext(), OPrevious(), OSql(), OBindCol(), OGetCol()
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be