Autor Beitrag
FiceGoesDelphi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Do 22.03.07 12:01 
Erstmal einen schönen guten Morgen liebe Delphi-Community,
ich hoffe ich kann hier bei euch viel lernen und vllt auch einigen etwas helfen.
Zu meinem jetzigen Problem:

Ich muss mich momentan über ExecSQL mit einer Datenbank verbinden und dann dort über einen Befehl eine Tabelle aus einer DB2 Datenbank aufrufen. Diese soll dann in eine Excel-Datei exportiert werden. Dieses soll jeden Tag passieren und daher ist der Befehl der in ExecSQL ausgeführt wird jeden Tag anders (in dem Befehl wird ein Datum verwendet, welches natürlich jeden Tag ein anderes ist.) Die Excel-Datei die exportiert wurde, soll dementsprechend einen festen Namen haben und dazu den dazugehörigen Zeitstempel.


Wie kann ich nun Delphi sagen, dass mein Programm in ExecSQL einen Befehl ausführt?


Wie kann ich dann diesen Befehln jeden Tag automatisch aktualisieren?


Momentan habe ich mich in sofern schlau gemacht, dass ich wohl "SQLConnection", "SimpleDataSet" und "ExcelApplication" benötige. Doch wie genau weiß ich leider nicht.

Ich hoffe, dass ihr mir hier ein wenig helfen könnt. Würde mir sehr viel helfen.

Liebe Grüße,
FGD



EDIT: Wenn ich jetzt die Falsche "Abteilung" genommen habe, um mein Problem zu posten, dann bitte ich dieses zu entschuldigen und dementsprechend meinen Beitrag zu verschieben.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 22.03.07 12:12 
www.dsdt.info/tutorials/?cat=6
BTW. mit .ExecSQL kannst du dich weder mit einer Datenbank verbinden noch Daten anzeigen.

_________________
Markus Kinzler.
FiceGoesDelphi Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Do 22.03.07 12:29 
user profile iconmkinzler hat folgendes geschrieben:
www.dsdt.info/tutorials/?cat=6
BTW. mit .ExecSQL kannst du dich weder mit einer Datenbank verbinden noch Daten anzeigen.


Danke für die schnelle Antwort. Ich bin momentan auf der Arbeit und habe hier eine Aushilfsstelle. Bei meinem "ExecSQL" was ich meine handelt es sich um einen selbst Programmierten Datenbankexplorer. Das habe ich leider erst gerade erfahren. Dachte es wüssten alle bescheid wenn ich von ExecSQL rede. *seufz*
Ich habe nochmal versucht meine einzelnen Bausteine raus zu kristalisieren.

Ich habe SQLConnection, womit ich mich mit meiner Datenbank verbinden soll.
Ich habe SimpleDataSet, um dort meinen SQL Befehl einzugeben(der mir meine Daten holt), welche jeden Tag sein Datum aktualisieren soll.
Ich habe ExcelApplication, mit welcher ich dann die Daten, die ich in dem SQL Befehl geholt habe, in Excel speicher.

Soweit liege ich doch jetzt richtig oder?

Ich arbeite mich jetzt mal durch die Tutorials. Vllt kann mir ja in der Zwischenzeit trotzdem noch jemand helfen.

Nochmals Sorry für dieses Missverständnis bezüglich "ExecSQL".

Liebe Grüße
FGD
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 22.03.07 12:55 
user profile iconFiceGoesDelphi hat folgendes geschrieben:
Danke für die schnelle Antwort. Ich bin momentan auf der Arbeit und habe hier eine Aushilfsstelle. Bei meinem "ExecSQL" was ich meine handelt es sich um einen selbst Programmierten Datenbankexplorer.
Hallo,

kannst du nochmal etwas präzisieren, um was es sich genau bei diesem ExecSQL handelt? Kannst du uns mal diesen Datenbankexplorer "zeigen", bzw. kurz erklären welche Methoden er bietet und wie man diesen verwende würde?
Wir sollten schliesslich die Schnittstellen kenn, bevor wir dir helfen können!

Oder hat das ganze womöglich gar nichts mit diesem Datenbankexplorer zu tun? Denn Lösungen mit anderen (bekannten) Standard-Komponenten für dein Problem findest du hier genug, bzw. kann man dir sehr leicht geben!

Gruß Hape!
FiceGoesDelphi Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Do 22.03.07 13:11 
user profile iconwulfskin hat folgendes geschrieben:
user profile iconFiceGoesDelphi hat folgendes geschrieben:
Danke für die schnelle Antwort. Ich bin momentan auf der Arbeit und habe hier eine Aushilfsstelle. Bei meinem "ExecSQL" was ich meine handelt es sich um einen selbst Programmierten Datenbankexplorer.
Hallo,

kannst du nochmal etwas präzisieren, um was es sich genau bei diesem ExecSQL handelt? Kannst du uns mal diesen Datenbankexplorer "zeigen", bzw. kurz erklären welche Methoden er bietet und wie man diesen verwende würde?
Wir sollten schliesslich die Schnittstellen kenn, bevor wir dir helfen können!

Oder hat das ganze womöglich gar nichts mit diesem Datenbankexplorer zu tun? Denn Lösungen mit anderen (bekannten) Standard-Komponenten für dein Problem findest du hier genug, bzw. kann man dir sehr leicht geben!

Gruß Hape!


Hallo Hape,

Es ist ein Datenbankexplorer, welcher selbst Programmiert wurde. Wir haben auf der Arbeit mehrere Datenbanken. Nennen wir sie 1-9. Über dieses ExecSQL können wir per Mausklick mit jeder Datenbank von 1-9 verbunden werden. Desweiteren können wir in diesem Programm den SQL-Befehl eingeben und auch sofort die Abfrage starten und uns das Ergebniss anschauen. Doch dieses läuft halt alles Manuell. Nun ist es meine Aufgabe, den oben beschriebenen Vorgang zu automatisieren. Es muss nicht in diesem Datenbankexplorer passieren. Primäres Ziel ist es, diesen Vorgang zu automatisieren und, für mich natürlich, viel zu lernen, um mich auf meine Ausbildung vorzubereiten. Ich bin über jede Hilfe äußerst dankbar. In dem oben geposteten Link, habe ich jetzt nichts bezüglich meiner 3 Bausteine gefunden, welche ich eben genannt habe.
Vielen dank nochmal für eure Hilfe.

Liebe Grüße,
FGD
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 22.03.07 13:48 
Hallo,

zitieren der wichtigsten Stellen reicht, sonst wird der Beitrag immer so lange :)!

Ich würde dir ganz klar empfehlen, dass selber zu basteln und nicht den Datenbankexplorer "fernzusteuern". Denn erstens kann dir hierbei kaum einer helfen, da wir nicht wissen, wie dieser funktioniert (Schnittstellen unbekannt) und zweitens lernst du dabei auch gleich wie man mit Delphi Datenbanken anspricht.

Nun zu dem Link weiter oben: Was hast du denn nicht verstanden, bzw. warum hilft dir das nichts?

Grundsätzlich müsstest du folgende Dinge klären, bevor es für dich weitergeht:
  • Was für eine Datenbank wird benutzt (DB2?)?
  • Wie sieht den die Struktur der Tabelle aus, die du verändern möchtest?
  • Was musst du einfügen? Woher kommen die Daten?
  • Welche Komponenten existieren um auf die Datenbanken zuzugreifen?
Übrigens: Es macht sicherlich auch Sinn, dass du dich über die Sprache SQL schlau machst!

Um es vorweg zu nehmen: Ich bin kein Experte auf dem Gebiet, aber ich bin mir sicher, dass du mit dem konkreten Fakten schnell zu deiner Lösung kommst!

Viele Grüße,
Hape
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Do 22.03.07 14:00 
ExecSQL ist eine Methode von TDataset. Das könnte man z.B. so verwenden :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
DS.Close;
DS.SQL.Clear;
DS.SQL.Add('CONNECT ''C:\DB\22032007.FDB' USER 'SYSDBA' PASSWORD 'masterkey';
DS.ExecSQL;


Man kann also im Klartext irgendwas da reinschreiben und die Verbindung zur Datenbank wird aufgebaut. Bitte Fehler beachten ! Deshalb macht man das eben nicht so, sondern eher so :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
DataBase.Close;
Database.ConnectParams.UserName := 'SYSDBA';
DataBase.DataBaseName := 'DB9';  // Name irgendwie festlegen. Kann auch heute 220307 sein
DataBase.Open;


Den Rest mit Excel usw. verstehe ich nicht. 8) Prinzipiell gilt es, die vorhandenen Methoden auch zu benutzen und nicht den Zugriffskomponenten irgendwelche Arbeit abzunehmen und alles selber zu bauen (SQL-String zusammenfriemeln usw.).

_________________
Gruß
Hansa
FiceGoesDelphi Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Do 22.03.07 14:31 
Vielen dank für die vielen Antworten!
Ich kämpfe gerade mit dem Programm und werde euch natürlich berichten wie und ob ich es geschafft habe :)

Liebe Grüße,
FGD
FiceGoesDelphi Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Fr 23.03.07 10:47 
Guten Morgen liebe Community,

momentan bin ich soweit das ich mich mit meiner Datenbank verbinden kann und die Tabelle angezeigt wird.
Nun habe ich noch eine ExcelApplication mit der ich aber nicht ganz zurecht komme.
Diese ExcelApp. ist der einzige Baustein in meinem Programm indem ich momentan einen Code eingeben kann. Die anderen beiden Bausteine welche ich oben schon erwähnt habe, lassen alles über den Objektinspektor einstellen. Kann mir jemand bezüglich der ExcelApplication helfen?
Was muss ich schreiben damit die in Tabelle die ich mit SimpleDataSet aus meiner Datenbank gezogen habe in Excel gespeichert wird.

Liebe Grüße
FGD
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 23.03.07 10:56 

_________________
Markus Kinzler.