Classe Query
Instructions pour les tables : personnellement, je n'utilise actuellement que des
tables.dbf avec leur index.mdx.
Syntaxe :
oObjet = new Query()
Liste des éléments (que j'utilise) :
*
active : détermine si un objet est ouvert et actif ou fermé,
valeur par défaut : .F. (fermé).
rowset : élément de données depuis un objet
sql : nom du fichier et éventuellement de son index avec lequel on veut travailler,
utilisation : oObjet.sql ='select * from MonFichier'
oObjet.sql ='select * from MonFichier ORDER BY MonIndex ASC'
Ci dessous un exemple (ne pas oublier de créer le dossier avant de tester).
**\ Balise début de programme
* ExempleTableIndex.prg - Divers outils Table et Index.
* -----------------------------------------------------
*
/*
Ceci est en exemple basique.
*/
*
PUBLIC DefautFolder && PUBLIC variable
*
DefautFolder = "C:\TestProgrammeBernardMouille"
*
IF MSGBOX("OUI = méthode objet" + CHR(10) + "NON = ancienne méthode" ;
,"Sélection méthode tables", 4 + 32) = 7 && 7 = NON.
*
* Créer une table.
*
CREATE TABLE "&DefautFolder\OldTableName" ( ;
OldFiedName1 CHAR(10), ;
OldFiedName2 CHAR(14))
*
* Indexer la Table.
*
USE &DefautFolder\OldTableName EXCLUSIVE
INDE ON OldFiedName1 TO &DefautFolder\OldIndexName1
INDE ON OldFiedName2 TO &DefautFolder\OldIndexName2
*
SET INDEX TO &DefautFolder\OldIndexName2, &DefautFolder\OldIndexName1
APPEND BLANK
REPLACE OldFiedName1 WITH "Field 1"
REPLACE OldFiedName2 WITH "Field 2"
USE
*
RETURN
ENDIF
*
* Créer une table.
*
CREATE TABLE "&DefautFolder\ObjectTableName" ( ;
ObjectFiedName1 CHAR(10), ;
ObjectFiedName2 CHAR(14))
*
* Indexer la Table.
*
LOCAL oTd
*
oTd = new DbfIndex()
oTd.unique := .T.
oTd.indexName := "Index1"
oTd.expression := "ObjectFiedName1"
*
_app.databases[1].createIndex(DefautFolder +"\ObjectTableName", oTd)
*
oTd := null
*
* Utiliser la table.
*
oDbf = new query()
oDbf.sql :='select * from "&DefautFolder\ObjectTableName"'
oDbf.active := true
*
oDbf.rowset.beginAppend()
oDbf.rowset.fields["ObjectFiedName1"].value = "Field 1"
oDbf.rowset.fields["ObjectFiedName2"].value = "Field 2"
*
oDbf.rowset.save()
oDbf.active := false
oDbf := null
*
RETURN