Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi pfad in einer datenbank speichern (https://www.delphipraxis.net/1968-pfad-einer-datenbank-speichern.html)

vamp79 1. Jan 2003 15:48


pfad in einer datenbank speichern
 
Ein frohes neues Jahr wünsch ich erst einmal, :party:

ich hab ein kleines problemchen, ich bin noch anfänger und brauche
einen Quelltext für einen button, ich hab schon im internet gesucht, aber ich finde nichts richtiges

also, das soll so ablaufen:

beim klick auf den button, soll sich das Windows "Datei öffnen" Fenster öffnen, dann sucht man sich eine datei aus z.B.: C:\bla\bal\bla.jpg
und beim klicken auf OK, soll nur dieser pfad in einer datenbank gespeichert werden.

Die datenbank hab ich bereits fertig

vielen vielen dank

vamp79

CalganX 1. Jan 2003 15:53

Vorwarnen: ich kenne mich kaum in Datenbanken aus, aber das sollte doch folgendermaßen funktionieren:
Delphi-Quellcode:
if OpenDialog.Execute then
  sql_query := 'INSERT INTO table ... VALUES (...,'+OpenDialog1.FileName+',...);';
  { dannn Query ausführen usw.}
end;
Chris

MrSpock 2. Jan 2003 15:15

Hallo vamp79,

wenn du mit einer Paradox oder dBase Datenbank arbeitest, musst du nicht unbedingt SQL benutzen. Es geht dann auch mit:

Delphi-Quellcode:
if OpenDialog.Execute then
begin
  myFileNames.Append;
  myFileNamesNamen.AsString := OpenDialog1.FileName;
  myFileNames.Post;
end;
Dabei gehe ich davon aus, dass du ein TTable Objekt mit dem Namen myFileNames benutzt, dieses auf deine Datenbanktabelle zeigt, die Tabelle ein Feld mit dem Namen "Namen" hat, das du mit dem Feldeditor als persistentes Feld hinzugefügt hast (über rechten Mausklick auf das TTable Objekt). Wenn du nicht zulassen willst, dass ein Eintrag mehrfach vorkommt, kannst du das Feld Namen indizieren und vor Einfügen abfragen, ob der Name schon existiert:

Delphi-Quellcode:
if OpenDialog.Execute then
  if Not myFileNames.FindKey(OpenDialog1.FileName) then
   ...

masters001 19. Jan 2003 01:48

Hallo ich benutze auch ein Paradox Datenbank
Ich möchte gerne eine Hoistory speichern
Also immer wenn ich auf senden drücke dann soll ich meiner datenbank ein neuer Eintrag gemacht werden:
(Zeit Datum An Text) Diese Felder hab ich in meiner Datenbank wie kann ich das machen? Hab das bis jetzt mit der datenbank immer nur mit dem
Navigator gemacht...
Vielen Dank

MrSpock 19. Jan 2003 16:48

Hallo masters001,

wenn du wo auf "Senden" klickst? Ist das ein Schalter in deinem Programm?

masters001 19. Jan 2003 20:43

Hallo
Senden ist ein Button
masters001

MrSpock 20. Jan 2003 08:02

Hallo masters001,

Zitat:

Senden ist ein Button
Ach was! :mrgreen: Senden ist auch eine Stadt :mrgreen: .

Ich nehme an, Senden ist ein Button in deiner Anwendung. Ich habe deshalb gefragt, weil es ja auch hätte sein können, dass immer wenn du "senden" in deinem eMail Programm von AOL, T-Online oder deinem Netscape eMail Client betätigst die Historie festgehalten werden soll. Ist es aber ein Schalter in deinem Programm, dann ist es einfach. Du fügst dem OnClick Event des Senden-Schalters folgenden Code hinzu:

Delphi-Quellcode:
...
  tabHistory.Append;
  { Datum und Zeit kann in einem Feld stehen }
  tabHistoryZeit.AsDateTime := Now;
  { An soll im Editfeld edAn stehen }
  tabHistoryAn.AsString := edAn.Text;
  tabHistoryText.Assign(meText.Lines);
  tabHistory.Post;

masters001 20. Jan 2003 22:48

Hehe...
Was ist denn hier tabHistory ?

Ich habs jetzt mal mit
Code:
   Table1.Append;
         Table1.Fields. //irgendwie so?
         Table1.Post
versucht!
Wenn ich jetzt bei dem table in der mitte das feld in meiner Datenbank history.db ausfüllen möchte wie sprech ich dann dieses Feld genau an das Es funktioniert?

MrSpock 21. Jan 2003 07:40

Hallo masters001,

tabHistory ist ein TTable Objekt, dem ich den Namen (property: name) tabHistory gegeben habe. Wenn du viele Tabellen verwendest, solltest du den TTable Objekten Namen geben, die sofort anzeigen, um welche Tabelle es sich handelt.

Wenn du auf das TTable Objekt rechtsklickst und "Alle Felder hinzufügen" auswählst, werden alle Felder der zugrundeliegenden Tabelle als sogenannte persistente Felder (Objekte der von der Klasse TField abgeleitete Klassen) eigefügt. Der Name der entsprechenden TField Objekte ist dann "Tabellenname+FeldName" also z.B. tabHistoryZeit den Wert erhälst du über die Eigenschaft Value also z.B.

Delphi-Quellcode:
tabHistoryZeit.Value
oder über Cast-Operatoren wie AsString oder AsDateTime, also z.B.

Delphi-Quellcode:
tabHistoryZeit.AsDateTime
Wenn du nicht mit persistenten Feldern arbeiten möchtest, kannst du auf dasselbe Feld mit

Delphi-Quellcode:
tabHistory.FieldByName('Zeit').AsDateTime
zugreifen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz