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]
