Je cherche à comprendre... Ma méthode même corrigée ne fonctionne pas alors que
si je me sers du morceau de code que Bernard m'a gentiment donné cela marche...
code de bernard:(légèrement retouché pour les noms et chemins)

ConnectOpenOffice; // établir la connexion, si pas déjà fait
  DataContext:= CreateUnoService('com.sun.star.sdb.DatabaseContext');
  NomSource:= 'src1';
  if DataContext.hasbyname(NomSource) then
    Memo_Enumeration.Lines.Add(NomSource +' existe')
  else begin
    // mettre les fichiers dans ce répertoire
    Chemin:= convertToURL('c:\Dossiers\Coquery');
    lesProps:= CreateProperties([
     'Extension', 'txt',        'CharSet', 'ISO-8859-15',
     'FixedLength', True,         'HeaderLine', True,
     'FieldDelimiter', ';',       'StringDelimiter', '"',
     'DecimalDelimiter', '.',     'ThousandDelimiter', ',']);
    uneInstance:= DataContext.createInstance;
    DataContext.registerObject(NomSource, uneInstance);
    uneInstance.URL:= 'sdbc:flat:' + Chemin;
    uneInstance.Info:= lesProps;
    Memo_Enumeration.Lines.Add('src ajoutée');
  end;

mon code:
//création du service databasecontext
Datacontext:=OpenOffice.createInstance('com.sun.star.sdb.DatabaseContext');
   //si openoffice connait la source src1
   if Datacontext.hasbyname('src1')
   then Memo_Enumeration.Lines.Add('src1 existe déjà')
   else
      begin
      // Core reflection est utilisé pour pouvoir créer des property value
      CoreReflection := OpenOffice.createInstance
                     ('com.sun.star.reflection.CoreReflection');
      //création d' un tableau  de propertyvalues équivalent à createproperties
      arguments:= VarArrayCreate([0,7], varVariant);
     
CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(PropertyValue);
      PropertyValue.Name := 'Extension';
      PropertyValue.Value := 'txt';
      arguments[0]:= PropertyValue ;
      PropertyValue.Name := 'CharSet';
      PropertyValue.Value := 'ISO-8859-15';  //ou 'ISO646-FR1'
      arguments[1]:= PropertyValue ;
      PropertyValue.Name := 'FixedLength';
      PropertyValue.Value := true;
      arguments[2]:= PropertyValue ;
      PropertyValue.Name := 'HeaderLine';
      PropertyValue.Value := true;
      arguments[3]:= PropertyValue  ;
      PropertyValue.Name := 'FieldDelimiter';
      PropertyValue.Value := ';';
      arguments[4]:= PropertyValue ;
      PropertyValue.Name := 'StringDelimiter';
      PropertyValue.Value := '"';
      arguments[5]:= PropertyValue ;
      PropertyValue.Name := 'DecimalDelimiter';
      PropertyValue.Value := '.';
      arguments[6]:= PropertyValue ;
      PropertyValue.Name := 'ThousandDelimiter';
      PropertyValue.Value := ',';
      arguments[7]:= PropertyValue ;
      //création de la datasource avec parametres
      instance:=Datacontext.createInstance;
      //enregistrement dans openoffice
      datacontext.registerObject('src1',instance);
      instance.URL:= 'sdbc:flat:file:///C:/Dossiers/coquery';
      instance.Info:= arguments;
      end;

Quelle différence y a-t-il entre le CreateProperties et ma création d'un tableau
de propertyvalues???
ou alors cela vient-il du fait que bernard utilise un ConnectOpenOffice qui
instancie des services que je n'utilise pas mais qui seraient nécessaires???
(Introspection et DispatchHelper)
J'aimerais bien comprendre les différences car si je trouve pratique d'utiliser
des outils faits par d'autres j'aime bien savoir ce qu'ils font de plus...
Je les ai épluchés déjà mais à part le ConnectOpenOffice qui contient des
instanciations supplémentaires , je ne voie pas trop de différences...


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à