Il y a quelque chose que je ne comprends pas dans la cr�ation d'un DataSource avec la 2.0...
Il est dit dans le sdk que les datasource doivent �tre sauvegard�es ("StoreAsUrl") avant d'�tre enregistr�es dans le DataContext ("registerObject")...
Mais alors que je tente avec Delphi de sauvegarder ma datasource avec la m�thode storeAsUrl, Delphi me dit que l'objet automation DataSource ne supporte pas la m�thode en question (pas l'interface n�cessaire)
Bizarre autant qu'�trange ne trouvez vous pas? Si quelqu'un a une explication qu'il n'h�sites pas.


voici mon code en Delphi qui devrait fonctionner d'apr�s le sdk et Danad du forum anglais de programmation OpenOffice...

   function getOOoDataSourceCSV(nomSource,ftxt:string):variant;
   // cette fonction ne sert que pour OpenOffice.org Writer
   // elle teste si le datasource utilis� par scolaris existe dans
   OpenOffice.org
   // et sinon le cr�e rem: elle ne cr�e pas le fichier .txt (csv)
   // son resultat est le datasource en question
   var DataContext,infos,instance:variant;
       chemin:string;
   begin
      ConnectOpenOffice;  //au cas o�
      // cr�ation d'un databasecontext qui contient toutes les datasources
      DataContext:= CreateUnoService('com.sun.star.sdb.DatabaseContext');
      if not(DataContext.hasbyName(NomSource))
      then
         begin
            //convertit le chemin (path) du fichier source en URL
            chemin:=convertToUrl(ExtractFilePath(ftxt));
            //creation d'un tableau de propertyvalues qui donnent les infos
            //n�cessaires � l'utilisation du fichier csv (.txt)
            infos:= CreateProperties([
            'Extension','txt',      'CharSet','ISO-8859-15',
            'FixedLength',true,     'HeaderLine',true,
            'FieldDelimiter',';',   'StringDelimiter','"',
            'DecimalDelimiter','.', 'ThousandDelimiter',',']);
   {         instance:=createUnoService('com.sun.star.sdb.DataSource');}
            instance:= dataContext.createInstance;
            instance.storeAsUrl(chemin + Nomsource + '.odb',dummyArray);
            DataContext.registerObject(Nomsource,instance);
            instance.URL:='sdbc:flat:'+chemin;
            instance.Info:=infos;
            instance.store;
         end;
      result:= DataContext.getbyname(NomSource)
   end;

Ce code delphi est issu du code suivant en r�utilisant les fonctions de Bernard

oFonte = createUnoService("com.sun.star.sdb.DataSource")
sUrl = ConvertToURL("C:\My Documents\ooo2b")
oFonte.storeAsURL(sUrl & "/novaFonte.odb", Array()) ' NEW STEP
sUrl = "sdbc:dbase:" & sUrl
oContexto.registerObject("Nova_Fonte", oFonte)
oFonte.setPropertyValue("URL", sUrl)
oFonte.store() ' NEW STEP



On m'a sugg�r� que cela peut venir du fait qu'il y a eu deux versions de OOo d'install�es en m�me temps sur mon poste ? Mais franchement je ne comprends pas....




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



Répondre à