Datenbank
Datenbank
Hallo habe folgendes Problem.
Habe mit mithilfe der Lazarus-Komponenten einer Datenbank erstellt und möchte mir nun zur weiteren Bearbeitung die einzelnen Spalten Inhalte in editfelder zurückgeben lassen.
Meine Tabelle sie wie folgt aus:
PersNr Name Vorname Abteilung Stunden
1 Mustermann Max Verkauf 40
2 Breit Bernhardt Lager 38
Möchte diese Daten auslesen und in Editfelder wiedergeben und mit weiteren Daten in einem Excel Dokument ablegen.
Ich habe eine ganze weile gesucht und nix gefunden, vielleicht kann mir ja jemand hier helfen.
Danke im vorraus.
Habe mit mithilfe der Lazarus-Komponenten einer Datenbank erstellt und möchte mir nun zur weiteren Bearbeitung die einzelnen Spalten Inhalte in editfelder zurückgeben lassen.
Meine Tabelle sie wie folgt aus:
PersNr Name Vorname Abteilung Stunden
1 Mustermann Max Verkauf 40
2 Breit Bernhardt Lager 38
Möchte diese Daten auslesen und in Editfelder wiedergeben und mit weiteren Daten in einem Excel Dokument ablegen.
Ich habe eine ganze weile gesucht und nix gefunden, vielleicht kann mir ja jemand hier helfen.
Danke im vorraus.
- af0815
- Lazarusforum e. V.
- Beiträge: 6780
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbank
Nach Lazinfos googeln.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Datenbank
http://alevel-computing.x10.mx/mw/index ... ial_DBEdit
http://wiki.lazarus.freepascal.org/FPSp ... rweiterung (wobei die englischen Seiten FPSpreadsheet und -Tutorial ausgefeilter sind)
http://wiki.lazarus.freepascal.org/FPSp ... rweiterung (wobei die englischen Seiten FPSpreadsheet und -Tutorial ausgefeilter sind)
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Datenbank
Danke hat mir sehr geholfen 

Re: Datenbank
hallo noch ne frage.
ich greife über die Dbf-komponente auf meine datenbank zu (Lazarusdatenbank). hier mein eigentliche problem, ich habe mein programm mit datenbak auf dem stick wenn ich jetzt aber mein programm auf nem anderen rechner verwenden will ändert sich ja das Laufwerk. gibt es da eine lösung den pfad so zu gestallten das ich mein programm auf jedem rechner nutzen kann ohne das der pfad geändert werden muss? Bzw irgend eine function.
ich bitte um eine schnelle lösung.
Danke schonmal im vorraus.
ich greife über die Dbf-komponente auf meine datenbank zu (Lazarusdatenbank). hier mein eigentliche problem, ich habe mein programm mit datenbak auf dem stick wenn ich jetzt aber mein programm auf nem anderen rechner verwenden will ändert sich ja das Laufwerk. gibt es da eine lösung den pfad so zu gestallten das ich mein programm auf jedem rechner nutzen kann ohne das der pfad geändert werden muss? Bzw irgend eine function.
ich bitte um eine schnelle lösung.
Danke schonmal im vorraus.
Re: Datenbank
Mal eine andere Frage, warum nutzt du in diesem Fall nicht TOpenDialog?! http://wiki.lazarus.freepascal.org/Howt ... nDialog/de
PS: wird auch so im DBF-Beispiel (unter Werkzeuge -> Beispielprojekte -> Addrbook) so gemacht.
PS: wird auch so im DBF-Beispiel (unter Werkzeuge -> Beispielprojekte -> Addrbook) so gemacht.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Datenbank
ich nutze es weil ich schon bei programmstart die datenbank öffne und die daten in einer dbGrid ausgebe.
und TOpenDialog nutze ich nur wenn ich irgendwas laden möchte.
und TOpenDialog nutze ich nur wenn ich irgendwas laden möchte.
-
- Beiträge: 152
- Registriert: Mo 3. Feb 2014, 14:07
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Datenbank
Wenn auf dem Stick das Programm und die Datenbank drauf ist, kannst du den Programmpfad ermitteln und anhand diesem dann den DB-Pfad erstellen. z.B. (Achtung, das ist Delphi-Code, Lazarus kann da ggf. leicht abweichen)
Code: Alles auswählen
DBName := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'DBName.DBF';
.
Re: Datenbank
Woher soll dein Programm wissen, dass nun gerade diese Datei geöffnet werden soll?!
Du kannst z.B. die Dateiendung mit deinem Programm verknüpfen, dann wird immer dein Programm geöffnet, wenn du den USB-Stick mit dieser in deinen Rechner steckst.
Eine unschöne Lösung wäre z.B. auch, dass du immer im gleichen Verzeichnis (oder Unterverzeichnis) deines Programms die Datei mitführst. Dann könntest du realtive Pfade nutzen. Edit: so wie das eben baumina vorgeschlagen hat.
Du kannst z.B. die Dateiendung mit deinem Programm verknüpfen, dann wird immer dein Programm geöffnet, wenn du den USB-Stick mit dieser in deinen Rechner steckst.
Eine unschöne Lösung wäre z.B. auch, dass du immer im gleichen Verzeichnis (oder Unterverzeichnis) deines Programms die Datei mitführst. Dann könntest du realtive Pfade nutzen. Edit: so wie das eben baumina vorgeschlagen hat.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Datenbank
habe das jetzt mit dem opendialog probiert und ich scheine irgendwas falsch zu machen. wenn ich die dbl-datei öffne wird mir nix in der grid zugewiesen. ich steh irgendwie aufm schlauch grade.
hab das so
hab das so
Code: Alles auswählen
var
DBName: string;
begin
if OpenDialog1.Execute then
begin
DBName:= OpenDialog1.Filename;
Dbf1.FilePathFull:= DBName; // hier wird mir ein fehler geworfen
end;
Zuletzt geändert von Lori am Di 21. Apr 2015, 21:14, insgesamt 3-mal geändert.
Grund: Bitte den Highlighter nutzen.
Grund: Bitte den Highlighter nutzen.
Re: Datenbank
OK.
PS: Falls du Hilfe wünschst, dann poste doch etwas Code, zeige was du probiert hast und was du glaubst hätte passieren sollen. Und frage, was unklar ist.
PS: Falls du Hilfe wünschst, dann poste doch etwas Code, zeige was du probiert hast und was du glaubst hätte passieren sollen. Und frage, was unklar ist.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Datenbank
hab ich grad beim bearbeiten^^
in DBName steckt ja dann der pfad drin und denn brauch ich doch in der Dbf-Komponente oder?
Code: Alles auswählen
var
DBName: string;
begin
if OpenDialog1.Execute then
begin
DBName:= OpenDialog1.Filename;
Dbf1.FilePathFull:= DBName; // hier wird mir ein fehler geworfen
end;
Zuletzt geändert von Lori am Di 21. Apr 2015, 21:14, insgesamt 2-mal geändert.
Grund: Bitte den Highlighter nutzen.
Grund: Bitte den Highlighter nutzen.
Re: Datenbank
Probier mal es so (ungetestet, habe kein TDbf installiert):
PS: Zum Code posten bitte Highlighter verwenden, das liest sich besser!
Code: Alles auswählen
if OpenDialog1.Execute then
begin
Dbf1.Close; //Falls noch eine Datenbank geöffnet
Dbf1.TableName:=OpenDialog1.FileName;
Dbf1.Open;
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Datenbank
danke danke danke für die hilfe.
es funktioniert super
es funktioniert super
Re: Datenbank
beim speichern mit savedialog ist es doch das selbe oder?
möchte dann die daten die bearbeitet bzw die hinzu kamen in eine zweite datenbank ablegen.
ich schreibe die daten in die datenbank und beim speichern soll ja in die neue dbl-datei diese daten geschrieben werden.
savetofile klappt nicht.
möchte dann die daten die bearbeitet bzw die hinzu kamen in eine zweite datenbank ablegen.
ich schreibe die daten in die datenbank und beim speichern soll ja in die neue dbl-datei diese daten geschrieben werden.
savetofile klappt nicht.