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 : Sélectionner tout - Visualiser dans une fenêtre à part
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]