18


Table
Propriétés
className : String
"Table"
colCount : Number
Nombre de colonnes La numérotation débute à 1 (0 indique une colonne invalide).
count : Number
Voir rowCount()
error : String
Dernier message dʼerreur
length : Number
Voir rowCount()
name : String
Nom du fichier associé à lʼobjet Table
rowCount : Number
Nombre de lignes La numérotation débute à 1 (0 indique une ligne invalide).
Méthodes
Table( name String) => Table
name : nom de la source de données, de la forme :
drive:/directory/filename.asc
drive:/directory/filename.dbf
odbc://login:password@data_source/table
notes://login:password@server/table (non disponible actuellement)
-
Ouvre une table. La source de données peut ne pas être rensignée pour créer une feuille de tableur en mémoire.
Table.create( name String, fields String) => Boolean
name : Nom de la nouvelle table à créer
fields : "nom_du_champ [type] taille, ..."
-
(nouveau en 1.7) Crée une nouvelle table xBase. name est le nom du fichier(.dbf). fields comporte la liste des définitions des colonnes, par exemple name C 33, address C 33, age N 3. Le nom des champs peut avoir jusquʼà 10 caractères. Le type et la taille des champs sont optionnels, leur valeur par défaut est C 255. La taille maximale dʼun champ est 65535. La compatibilité xBase requiert que la taille totale de lʼenregistrement soit inférieure à 65535. Les types acceptés sont Character, Number, Date, or Time (seule la première lettre est requise).
add( data Record|Object) => Boolean
data : valeurs initiales
-
Ajoute une nouvelle ligne à la table, lui affecte les valeurs de data et renvoie lʼindice de la nouvelle ligne. Base de données SQL :
JSDB ne gère pas les champs autoincrement dans les requêtes INSERT. La base de données doit sʼen charger.
Pour les champs clef qui ne sont pas de type autoincrement, JSDB génére une valeur unique, de 24 caractères, basée sur l ʻheure systèmeet un compteur stocké dans la base de registre. Cette valeur ne se répéte pas sur la durée de vie du système solaire [ndrl : on peut effectivement considérer quʼelle est unique...].
Si lʼajout sʼeffectue à une table Oracle et quʼune valeur de clef primaire nʼest pas fournie, JSDB utilise seq_tablename.nextval.
Si lʼargument data est un Object, les valeurs chaîne (string) sont converties en UTF-8.
addColumn( name String) => Boolean
name : nom de la colonne
-
Ajoute une nouvelle colonne (qui doit posséder un nom unique) et renvoie le (nouveau) nombre de colonnes.
append( source String, callback Function, opaque Function) => Boolean
source : Table source
callback : fonction callback
opaque : paramétres passés à la fonction callback
-
Copie les données dʼune autre table. La fonction callback est de la forme function cb(record, opaque, ...), où record est lʼindice de la ligne en cours de transfert, et opaque (et ...) sont les paramètres complémentaires passés à append().
column( column String) => Number
column : nom du champ
-
Renvoie lʼindice de la colonne qui correspond au nom de champ. Si le nom nʼexiste pas dans la base de données, renvoie 0.
data( row Number, column Number|String) => String
row : numéro de la ligne (débute à 1)
column : numéro de colonne ou nom
-
Renvoie les données à la position indiquée dans la table. Vous pouvez déterminer si une ligne est marquée supprimée à lʼaide du premier caractère de table.data(row,0) (prend alors 'D' pour valeur).
del( data Number) => Boolean
data : numéro de ligne
-
Supprime la ligne de la table.
deleteColumn( column Number) => Boolean
column : numéro de colonne
-
Retire la colonne dʼune table tableur.
find( query Record|Object, start Number, direction Number) => Number
query : valeur à rechercher, par exemple : query = new Record('name=Alice');row = table.find(query)
start : indice de la ligne à partir de laquelle la recherche débute (par défaut la première)
direction : +1 recherche avant (de la position indiquée vers la dernière ligne) ou -1 recherche arrière (de la position indiquée vers la première ligne)
-
Le résultat de la dernière recherche est stocké dans la propritété lastFind de la table. Les lignes supprimées ne sont pas prise en compte lors de la recherche.
findNext( query Record) => Number
query : Requête de find()
-
Continue la dernière recherche (cherche lʼélément suivant).
get( row Number, column Number|String) => String
row : indice de la ligne (débute à 1)
column : indice de colonne ou nom
Voir data()
getMessage( row Number) => String
Row : Indice de la ligne (débute à 1)
-
Pour les tables de messages mail (voir Mail), renvoie le texte du message suivant.
getRow( row Number, data Record) => Boolean|Record
row : indice de la ligne
data : valeurs
-
Renvoie un enregistrement (record) contenant les valeurs de la ligne demandée. Si lʼargument data est précisé, remplit lʼenregistrement. La fonction renvoie alors true or false.
getWhere( row Number) => String
row : indice de la ligne (débute à 1)
-
Pour la mise au point avec des tables ODBC, renvoie la clause WHERE de la requête utilisée pour identifier une ligne particulière.
index( column String|Number) => Index
column : nom de la colonne
-
Cette fonction renvoie un index à la base de données. Si vous appelez index()avec un nom ou un numéro de colonne, lʼobjet renvoyé dispose de la méthode find(key), où key peut être la valeur du champ ou un enregistrement (record) comprenant la valeur appropriée. Si vous appelez index()avec une liste de noms de champ, lʼindex se construit à partir des chaînes où les données sont séparées par des retours chariot. Vous pouvez ainsi appeler index().find('value1\nvalue2\nvalue3') ou index().find(new Record('field1=value1,field2=value2,field3=value3'). La méthode index().find() renvoie le nombre de lignes compatibles ou -1 si aucune nʼest trouvée. La construction des index prenant du temps, vous pouvez procéder de la façon suivante :
var index = table.index('field')
writeln('adding record ',table.addRow(data))
index.add(data)
writeln('found record ',index.find(data));
save( file String|Stream, delimiter String, titles Boolean) => Boolean
file : nom du fichier
delimiter : par défaut : séparateur utilisé en lecture ou tab
titles : true par défaut
-
Enregistre les modifications opérées. Si la base de données nʼa pas de nom la fonction échoue. Pour les bases de données ODBC, effectue un COMMIT. Pour les bases de données DBF, ne fait rien.Pour les bases de données ASCII, vous pouvez enregistrer le fichier comme un flux. Dans ce cas, spécifiez un séparateur (delimiter) (ou null pour utiliser celui par défaut) et choisissez dʼinclure (ou non) la ligne dʼen-tête (titles).
set( row Number, column Number|String, value String) => Boolean
row : indice de la ligne (débute à 1)
column : indice de colonne ou nom
value : nouvelle valeur
-
Définie la valeur à la position indiquée de la table. Vous pouvez supprimer une ligne à lʼaide de table.set(row,0,'Delete'). Pour les tables DBF et SQL, vous pouvez retirer la marque de suppression avec table.set(row,0,' '). Les tables DBF ne retirent pas les enregistrements supprimés. Les tables SQL les retirent lors du rafraichissement (qui nʼest pas nécessairement immédiat). Les tables tableur les retirent immédiatement.
setN( row Number, column Number|String, value Number) => Boolean
row : indice de la ligne (débute à 1)
column : numéro ou nom de colonne
value : nouvelle valeur
-
Définie la donnée numérique (number) à la posiiton indiquée dans la table. Les nombres sont usuellement convertis en texte pour le stockage dans la base de données.
setRow( row Number, data Record) => Boolean
row : indice de ligne
data : valeurs
-
Définie les valeurs dans la table. Renvoie true en cas de succès.
setTitle( column Number, title String) => Boolean
column : indice de colonne
title : nouveau titre
-
Change le titre de la colonne (son nom). Ne fonctionne que pour les tables de type tableur (ASCII et en mémoire).
title( column Number) => Number
column : indice de colonne
-
Renvoie le titre dʼune colonne (son nom). Le numéro de colonnes débute à 1. Vous pouvez trouver le nombre de colonnes à lʼaide de la propriété colCount.
toString( ) => String
Renvoie le nom du fichier
type( column String|Number) => String|Array
column : nom de colonne
-
Pour un argument, renvoie le type de données correspondant dans la ligne. Pour plusieurs arguments, retourne un tableau de type. Les types possibles sont C, N, D, T pour caractères, nombre, date et heure (time).
width( column Number) => Number
column : indice de colonne
-
Renvoie la largeur en caractères de la donnée qui peut être stockée dans cette colonne. Les tables de type tableur nʼont pas de limite.