Comment manipuler un DataSource de OpenOffice.org ?
Est ce quelqu'un a déjà réussi à en créer un et à s'en servir correctement?
Je dois réaliser un publipostage avec OOo ce que je sais faire en le pilotant de delphi mais pour des raisons de sécurité il faudrait que je puisse créer le datasource du publipostage.
J'arrive à en créer un mais il ne contient aucune table (ennuyeux).
Si quelqu'un a déjà réalisé cette opération qu'il me vienne en aide SVP. :(
voilà mon code...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
var arguments:variant;
PropertyValue :variant;
CoreReflection: Variant;
begin
//création d'un database context qui contient toutes les sources de données
//connait open office
Datacontext:=OpenOffice.createInstance('com.sun.star.sdb.DatabaseContext');
//si openoffice connait la source src1
if Datacontext.hasbyname('src1')
then Memo_Enumeration.Lines.Add('src1 trouvé')
else
begin
// Core reflection est utilisé pour pouvoir créer des property value
CoreReflection := OpenOffice.createInstance
('com.sun.star.reflection.CoreReflection');
// un tableau dynamique de propertyvalues
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 := 0;
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
Datasource:=OpenOffice.createInstance('com.sun.star.sdb.DataSource');
datacontext.registerObject('src1',Datasource);
Datasource.URL:= 'sdbc:flat:file:///C:/Dossiers/coquery/';
Datasource.Info:= arguments;
{datasource.TableFilter:=('essai');
datasource.TableTypeFilter:= ('TABLE');}
connection:=datasource.getconnection('','');
end;
end; |
[/b]