externe SQL-Datenquelle in Calc

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: externe SQL-Datenquelle in Calc

SQL-Kommando direkt ausführen...

von scholler » Fr, 03.03.2006 07:20

... wenn diese Option innerhalb der SQL-Abfrage-Symbolleiste aktiviert wird scheinen auch komplexe, DB-Backend-Spezifische Abfragen in Base zu funktionieren, da dann wohl der Base-SQL-Parser außen vor gelassen wird.

von scholler » Fr, 03.03.2006 07:03

Morgen Peter!
pmoegenb hat geschrieben:Hallo Alexander,

aber mit HSQLDB geht z. B. das

Code: Alles auswählen

SELECT COUNT(*), DAYOFYEAR("Datum") AS "DatumTag"  FROM "Tabelle1"
GROUP BY "DatumTag"
Gruß

Peter
Danke für Deine Antwort. Hiermit sind nicht all meine Abfragen nun lauffähig, aber doch einige mehr als zuvor.
Ich wundere mich dass diese Alias-Syntax zulässig, den schließlich wertet ja die DB-Engine das GROUP BY vor dem SELECT aus, somit sollte dem GROUP BY der Alias des SELECTs doch noch garnicht bekannt sein.

Gruß, Alexander

von pmoegenb » Do, 02.03.2006 17:38

Hallo Alexander,

aber mit HSQLDB geht z. B. das

Code: Alles auswählen

SELECT COUNT(*), DAYOFYEAR("Datum") AS "DatumTag"  FROM "Tabelle1"
GROUP BY "DatumTag"
Gruß

Peter

von scholler » Do, 02.03.2006 14:33

Hallo,
pmoegenb hat geschrieben: Hallo Alexander,

was bei Excel, Winword etc. MS-Query ist, ist bei OO Base, nur kann Base wesentlich mehr.

Base hat eine integrierte Datenbank HSQLDB (http://hsqldb.org/) und dient auch als Frontend für externe DB's.

Die Abfragen die mit Base erstellt wurden, stehen allen Programmteilen wie Calc, Writer etc. zur Verfügung.
Da habe ich aber ein Verständnisproblem. Abfragen die in Base erstellt wurden werden doch in einer odb-Datei gespeichert - oder?
Nun verwende ich eine SQL-Abfrage innerhalb Calc, die ich in Base erzeugt habe. Dann kopiere ich die ods-Calc-Datei auf einen anderen Rechner. Funktioniert dann noch die Abfrage, da ja die Base-Datei nicht mehr verfügbar ist?
pmoegenb hat geschrieben:
Wenn Du die Abfrageassistenten benutzt musst Du sicherlich Abstriche an Deinen Anforderungen machen, aber als Direkteingabe von SQL-Befehlen müsste eigentlich der Umfang möglich sein, den die DB zulässt. Nur, wie bereits an anderer Stelle erwähnt, müssen die Bezeichner anders angeführt werden.

Gruß

Peter
Ich würde liebend gerne den Abfrageassistenten nicht nutzen, jedoch öffnet sich der ja automatisch beim Bearbeiten einer Abfrage. Man muss dann auf die SQL-Ansicht wechseln und dort wird das SQL-Statement zu allem Überfluss evtl. selbstständig von Base modifiziert.

Definitiv kann ich unter Base nicht alle SQL-Statements abschicken wie bereit früher von mir geschrieben.

Probier's selbst aus:

Code: Alles auswählen

CREATE TABLE oootest (test` DATETIME NOT NULL);
insert into oootest values(now()-1);
insert into oootest values(now());
select count(*), test from oootest group by test;
select count(*), dayofyear(test) from oootest group by dayofyear(test);
Das erste select funktioniert in Base, das zweite nicht mehr, obwohl beide in phpMyAdmin funktionieren. Diese Einschränkung ist für mich leider nicht tragbar! Ist's ein Bug?

Und noch eine Frage:
Um obigen Test-Code zu verifizieren habe ich eine test.odb angelegt. Diese Datenquelle ist nun unter Calc verfügbar. Wie kann ich die Datenquelle wieder löschen? Wenn ich die test.odb lösche wird die Datenquelle weiterhin angezeigt, jedoch bei Zugriff auf diese erfolgt die Fehlermeldung dass die Datei nicht existiert. Somit bestätigt sich mein obiges "Verständnisproblem".

Wo gibt's gute Dokus zur Nutzung der Ooo-Datenquellen?

Peter, besten Dank auf jeden Fall schon mal für Deine kompetenten bisherigen Hinweise!

Gruß, Alexander

von pmoegenb » Do, 02.03.2006 12:30

Hallo Alexander,

was bei Excel, Winword etc. MS-Query ist, ist bei OO Base, nur kann Base wesentlich mehr.

Base hat eine integrierte Datenbank HSQLDB (http://hsqldb.org/) und dient auch als Frontend für externe DB's.

Die Abfragen die mit Base erstellt wurden, stehen allen Programmteilen wie Calc, Writer etc. zur Verfügung.

Wenn Du die Abfrageassistenten benutzt musst Du sicherlich Abstriche an Deinen Anforderungen machen, aber als Direkteingabe von SQL-Befehlen müsste eigentlich der Umfang möglich sein, den die DB zulässt. Nur, wie bereits an anderer Stelle erwähnt, müssen die Bezeichner anders angeführt werden.

Gruß

Peter

von scholler » Do, 02.03.2006 11:31

Hallo Peter,
pmoegenb hat geschrieben:Hallo Alexander,
[...] Nun, unter Excel kenne ich keine SQL-Zugriffe (externe schon garnicht), sondern nur mittels MS-Query, die wiederum in Excel eingebunden werden können.
Ja - Du hast recht.
pmoegenb hat geschrieben: Ferner gehe ich davon aus, dass Du lediglich eine MySQL-DB als Datenquelle bei Base angemeldet hast.
  • - Klicke diese Datenquelle mit der rechten Maustaste an und wähle als Oprtion Dateibankdatei bearbeiten... aus.
    - Wähle im linken Fenster von Base Abfragen aus.
    - Im Fenster Aufgaben kannst Du nun Abfrage in SQL-Ansicht erstellen... auswählen.
Der Name der Abfrage erscheint dann unter der Rubrik Abfagen in der Datenquelle-Übersicht.
Da sind wir am springenden Punkt.
Ich möchte unter Calc SQL-Abfragen durchführen - Du sprichst nun aber von Base. Anscheinend muss man die SQL-Abfragen in Calc über Base laufen lassen - oder?
Ich habe unter Base das Problem dass Aggregationen (GROUP BY Funktionxyz(Spalteabc)) anscheinend nur für gewisse Funktionen wie SUM/AVG/etc. zugelassen sind.
Ich möchte/muss jedoch eine Datumsfunktion von MySQL nutzen.

Was tun???

Gruß, Alexander

von pmoegenb » Do, 02.03.2006 10:37

Hallo Alexander,

ich gehe davon aus, dass dies identisch mit der Windows-Version ist. Nun, unter Excel kenne ich keine SQL-Zugriffe (externe schon garnicht), sondern nur mittels MS-Query, die wiederum in Excel eingebunden werden können.

Ferner gehe ich davon aus, dass Du lediglich eine MySQL-DB als Datenquelle bei Base angemeldet hast.
  • - Klicke diese Datenquelle mit der rechten Maustaste an und wähle als Oprtion Dateibankdatei bearbeiten... aus.
    - Wähle im linken Fenster von Base Abfragen aus.
    - Im Fenster Aufgaben kannst Du nun Abfrage in SQL-Ansicht erstellen... auswählen.
Der Name der Abfrage erscheint dann unter der Rubrik Abfagen in der Datenquelle-Übersicht.

Gruß

Peter

externe SQL-Datenquelle in Calc

von scholler » Do, 02.03.2006 08:45

Hallo,

ich möchte (wie man's von M$-Excel kennt) eine externe SQL-Abfrage einer externen MySQL-DB in Calc 2.0 unter Linux mit JDBC einbinden.

Wie geht das? Ich habe schon reichlich im Internet recherchiert aber nicht den entscheidenden Hinweis gefunden. Folgende Möglichkeiten tun sich auf:

1)
Ansicht Datenquellen. Dort wird u.A. eine von mir erzeugte Base-DB angezeigt die wiederum eine JDBC-Verbindung zu MySQL hat => ich habe also über Base-Umwege Zugriff.
Wie kann ich's ohne Base machen, insbesondere wie kann ich direkt SQL-Abfragen unter Calc angeben, am Besten unter Verwendung zuvor angegebener Parameter-Werte innerhalb von Calc-Zellen?
Außerdem solle ich innerhalb des Datenquellen-Explorers mit Hilfe des Kontextmenüs eine neue Datenquelle (laut Hilfesystem) anlegen können - bei mir gibt's jedoch nur die Möglichkeit "Datenbankdatei bearbeiten" - wieso?

2)
Daten - Datenpiloten - Aufrufen
Für was ist dieser?
Quelle - Externe Quelle/Schnittstelle ist bei mir deaktiviert/grau - wieso?
Hier handelt es sich irgendwie um OLAP-Verbindungsmöglichkeiten?

Meine Anfrage ist doch nichts außergewöhnliches. Ist's wirklich nicht so einfach oder mache ich einen entscheidenden Denkfehler?

Ich bin um jeden Hinweis froh!

Gruß, Alexander

    Nach oben