2009-03-11 9 views
0

Je migre une base de données Lotus Notes vers SQL Server à l'aide de l'API LN Java. Tout en traversant chaque champ LN dans les documents, je trouve que toutes les informations tabulaires ont des noms de champs comme fld, fld_1, fld_2 etc où fld représente le nom d'une colonne et le schéma de numérotation doit prendre soin de chaque ligne individuelle. Existe-t-il un moyen simple d'extraire ces informations sous forme de tableaux à l'aide de l'API LN java?Extraction d'une liste de valeurs à partir de champs de notes Lotus

Répondre

0

Il n'y a pas de manière simple, ou plus spécifiquement, que Lotus Notes ne vous aide pas dans cette tâche. Lotus Notes est une base de données à 'fichier plat' et chaque document peut contenir un nombre quelconque d'éléments (colonnes). Bien qu'un formulaire Lotus Notes puisse afficher des données dans un format tabulaire à l'aide d'une table ou d'une zone de mise en page, le document (enregistrement) qui contient ces données est simplement comme une seule ligne d'une table SQL et il n'existe aucun moyen logique regroupez les éléments de ce document, par exemple, pour relier tous les éléments fld_ ensemble. Mes suggestions sont d'utiliser n'importe quelle structure de données que vous trouvez pratique pour obtenir les données des éléments dans SQL. Cela peut être un tableau ou un objet personnalisé qui peut ensuite être enregistré dans la base de données.

1

Bien "simple" peut être un terme ambigu.

Si vous n'avez pas encore résolu ce problème. Vous pouvez écrire une méthode qui boucle autour et saisit chaque champ comme ceci:

import lotus.domino.*; 
.... 
public static void main(String[] arg) { 

    for(int i=1 ;i<MAX_FIELD;i++) { 
     Item itm = doc.getFirstItem("field_"+String.valueOf(i)); 
     if (itm != null) { 
      // if it's a multi-value field. 
      Vector v = item.getValues(); 
      // do other stuff here with the values. 
     }; 
    } 
} 

Vous devez vous assurer que vous importez l'API de NotesJava appropriés de votre projet. Rappelez-vous que chaque champ sur un document est effectivement et tableau avec 1 ou plusieurs valeurs. Ces champs ("field_1", "field_2", etc.) ont été définis arbitrairement par un développeur. C'est une pratique courante pour émuler des structures de données de type table. Habituellement, les champs représentent des colonnes et non des lignes. Mais accéder au champ de cette manière en utilisant l'objet "item" devrait vous donner accès aux données.

Questions connexes