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]