Autor Beitrag
klabri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: So 28.03.10 17:55 
Hallo,
ich habe eine Datenbank mit Open Office Base erstellt, wie kann mit Delphi auf sie zugreifen ?
Sybok Factor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50
Erhaltene Danke: 5

Win XP, Win Vista
Delphi 2010 Professional
BeitragVerfasst: Mo 29.03.10 13:40 
Meines Wissens gibt es da keinen Weg BASE Daten über Komponenten anzusprechen. Prinzipiell ist Base als Container gedacht, um auf Daten aus anderen Datenquellen (MySQL, SQLServer...) Zugriff zu bekommen. In dem Fall werden die Zugriffsinformationen gespeichert und du bekommst die Datenquellen in anderen OO-Dokumenten vorgeschlagen.
Die Base Datenbank ist glaube ich "nur" ein XML Dokument, meines Wissens ist ein Mehrbenutzerzugriff nicht vorgesehen. Eventuell kannst du über JDBC einen Zugriff aus Delphi heraus bekommmen...

Ansonsten wäre mir nur ein manueller Zugriff bekannt, dazu müsstest du dir Kenntnisse in der OOo Makro Programmierung aneignen. Ich muss gestehen, dass ich diesen Zugriff auf Base noch nicht ausprobiert habe. Bislang konnte ich aber die meisten Makro Befehle in Delphi nutzen.

Viele Grüße

Sybok

_________________
Jetzte michse verstehen dein Problem.
JDF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29

WinNT, Win2k, WinXP, Win2003
d6ent, d7pro, bds2006ent, vs2003
BeitragVerfasst: Mo 29.03.10 14:22 
Die Datenbank nennt sich 'HyperSQL'.

Schau mal auf die Homepage: hsqldb.org/

Jürgen
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Mo 29.03.10 16:06 
einfaches auslesen

ausblenden Delphi-Quelltext
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:
procedure TOLE_OpenOffice.do_db(db:String);
var Context,DataBase,Conn,Stmt,Res   : Variant;
    strSQL, s : String;
begin
  // create database context
  Context := Service.createInstance('com.sun.star.sdb.DatabaseContext');

  // get the database
  DataBase :=Context.getByName(ToOOPfad(db));

  //establish connection to database
  Conn := DataBase.getConnection('','');

  //1create a statement service object
  Stmt := Conn.createStatement;

  //create an SQL command
  strSQL := 'SELECT * FROM TESTTABELLE';

  //1execute and store results in ResultSet Object
  Res := Stmt.executeQuery(strSQL);
  While Res.next do
  begin
    s := Res.getString(1);
  end;
    Conn.close;
End;


Service ist ebenfalls vom Typ Variant
ausblenden Delphi-Quelltext
1:
Service := CreateOleObject('com.sun.star.ServiceManager');					


und das ToOOPfad wandelt einfach nur den Pfadnamen in einen OO-kompatiblen Pfadstring um
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function TOLE_OpenOffice.ToOOPfad(Pfad:String):String;
var rueckgabe : string;
    i : integer;
begin
  rueckgabe := 'file:///';
  while (POS('\',pfad)>0do
  begin
    i := POS('\',pfad);
    delete(pfad,i,1);
    Insert('/',pfad,i);
  end;
  rueckgabe := rueckgabe + pfad;
  result := rueckgabe;
end;

_________________
mfg. Joel
klabri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: Di 30.03.10 13:37 
Hallo JoelH,
danke für deine Beiträge,leider hab ich das mit dem "auslesen" nicht verstanden,
bin Delphi-Anfänger....
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Mi 31.03.10 12:50 
schau mal da rein, das sollte dir weiterhelfen

docs.sun.com/app/doc...19-1326/faajr?a=view

_________________
mfg. Joel