Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi dBase-Datenbanken mit Topaz-Erweiterung (https://www.delphipraxis.net/151524-dbase-datenbanken-mit-topaz-erweiterung.html)

FriendOfDelphi 21. Mai 2010 12:09

Datenbank: dBase • Zugriff über: Topaz

dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo Allerseits,

hat jemand hier im Forum Erfahrung mit der Erweiterung "Topaz" für das Arbeiten mit Delphi und dBase-Datenbankdateien?
Wenn ja, hätte ich da ein paar Fragen.

Ich verwende Delphi 5 und Topaz 5.

DeddyH 21. Mai 2010 12:17

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Ein Thread reicht ;)

Daniel 21. Mai 2010 12:25

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Ist korrigiert. Ich nehme diese beiden Beiträge später dann auch weg, weil sich da ja erledigt hat. ;-)

hoika 21. Mai 2010 14:31

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

Zitat:

Topaz is a plug 'n' play, native VCL replacement for the Borland Database Engine. It comes with over 250 pages of documentation including tutorial, technical reference and numerous code samples.
Wo hast du jetzt genau ein Problem,
was sich nicht durch die Dokumentation und die Bsp-e lösen läßt ?


Heiko

FriendOfDelphi 21. Mai 2010 14:52

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von hoika
Hallo,

Zitat:

Topaz is a plug 'n' play, native VCL replacement for the Borland Database Engine. It comes with over 250 pages of documentation including tutorial, technical reference and numerous code samples.
Wo hast du jetzt genau ein Problem,
was sch nicht durch die Dokumentation und die Bsp-e lösen läßt ?

Heiko

Hallo,

ich möchte einen vorhandenen Quellcode dynamisieren.
Bisher ist das Ganze statisch aufgebaut.
Also fest über die Komponenten, Objektinspektor etc. im Quellcode verankert.
Ich möchte das Ganze aber vollständig über eine ini-Datei steuern.
In dieser ini-Datei stehen dann z.B. Datenbankname, die Spaltenüberschriften usw.
Der Ablauf ist dann in etwa so:

1.) ini-Datei einlesen,
2.) Gibt es schon eine dBase-Datenbank mit den Feldern aus der ini-Datei?
2.1) Nein: Datenbank erzeugen,
2.2) Ja: Vorhandene Datenbank einlesen,
3.) Eingelsene Daten verarbeiten.

Punkt 1-3 habe ich schon erledeigt.
Das Erzeugen einer Datenbank ist auf der Topaz-Seite ganz gut beschrieben und funktioniert:
Topaz-FAQs

Delphi-Quellcode:
   procedure TForm1.Button1Click(Sender: TObject);
   VAR dbf: TTzDbf;
   begin
     dbf := TTzDbf.Create(Application); { create an instance of TTzDbf }
     try
       dbf.DbfFields.Clear;                { clear the list of fields }
       dbf.DbfFields.Add('name,C,30,0');   { add desired fields }
       dbf.DbfFields.Add('age,N,3,0');
       dbf.DbfFields.Add('amount,N,10,2');

       dbf.DbfFilename := 'c:\junk.dbf';   {specify the database name}

       dbf.Active := TRUE;                 { set active to true }
       dbf.Active := FALSE; { we are done creating the database }
     finally
       dbf.Free; { do not forget to free the instance }
     end;
   end;
Probleme bereiten mir die Punkte 2.2) und 3.)
Hier würde mir etwas Beispiel-Code weiterhelfen.
Ich habe dazu im Netz keine Beispiele gefunden.

hoika 21. Mai 2010 15:24

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

du wirfst DataBase und Tabelle in einen Topf.

Was du erzeugst, ist keine Datenbank. sondern eine Tabelle.

Bei DBase ist die Datenbank einfach das Verzeichnis, wo die Tabellen drinstehen.


Eine Tabelle wird über TzDbf "verwaltet".
Im Code also

Delphi-Quellcode:
var
  MyDBF: TzDbf;
begin
  MyDBF:= TzDbf.Create(NIL);
  try
  finally
    MyDBF.Free;
  end;
end;
Wichtig ist TzDbf.DbfFileName. Dort steht der Name der DBF-Datei (=Tabelle) incl. Pfad.

Per TzDbf.Open bzw. TzDbf.Active:= True wird die Tabelle geöffnet.

Dann sollte es noch First, Last, Next, Prior, Eof usw. geben.

Da es als BDE-Ersatz gedacht ist,
sollte die Verwendung der Befehle kein Problem sein.



Heiko

FriendOfDelphi 22. Mai 2010 11:22

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

hmm, so ganz verstehe ich das noch nicht.

Ich habe folgendes ausprobiert:
Delphi-Quellcode:
{...}
    { Private-Deklarationen }
    DB: TTzVFile;
{...}

{...}
    DB:=TTzVFile.Create(Application);
    DB.DbfFilename := ExtractFilePath(ParamStr(0))+'test.dbf';   {specify the database name}
    DB.Open;
    DB.Append;
    DB.FieldByName('Test1').AsString := '20.05.2010 15:31:34';
    DB.FieldByName('Test2').AsFloat := 40318.6469213;
    DB.FieldByName('Test3').AsFloat := 123.626;
{...}
Der Compiler meldet keinen Fehler.
Wenn ich das Programm aber laufen lasse, erhalte ich folgende Fehlermeldungen (Fehler tritt in der Zeile mit dem DB.Open auf):
"FieldList.Count ist <=0 beim Versuch, eine Datenbank zu erzeugen"
Und nach Bestätigung des OK-Buttons:
"Im Projekt PdBase.exe ist eine Exception der Klasse Exception aufgetreten. Meldung: 'Dataset error: 1401'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen."

Was mache ich falsch?

Alfredo 22. Mai 2010 16:15

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Ich habe kein Topaz, aber bei anderen Komponenten verwende ich

nicht DB.open;

sondern DB.Active := TRUE;

Bis alles läuft würde ich auch den Pfad erst fest im Programm angeben.
Auch schadet es nicht zum Test vor dem DB.open eine ShowMessage auszugeben
und Vorn und Hinten mit X und Z zu begrenzen.

Gruß
Alfred

FriendOfDelphi 25. Mai 2010 14:32

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

gibt es denn hier wirklich keinen Fachmann der sich damit auskennt und hier helfen kann, bzw. ein erstes Grundgerüst posten kann, auf welches man aufbauen kann?
Brauche hier wirklich Hilfe.
Komme nicht weiter.

hoika 25. Mai 2010 15:37

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

Delphi-Quellcode:
DB: TTzVFile
Bei mir in #6 heisst das aber anders ...
wie komst du jetzt auf TTzVFile ???


Zitat:

gibt es denn hier wirklich keinen Fachmann
Fachmann für DBase ???
Glaube ich nicht, dass es noch was was gibt.


Heiko

FriendOfDelphi 25. Mai 2010 16:08

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von hoika
Hallo,

Delphi-Quellcode:
DB: TTzVFile
Bei mir in #6 heisst das aber anders ...
wie komst du jetzt auf TTzVFile ???

Das Typ "TTzVFile" steht so im vorhandenen Quellcode, der mit den grafischen Komponenten erstellt wurde.
Da dieser fehlerfrei funktioniert, gehe ich mal davon aus, dass das so richtig ist.
Ich habe diesen daher so übernommen.
Der Compiler meckert diesen Typen auch nicht an.

Zitat:

Zitat von hoika
Zitat:

gibt es denn hier wirklich keinen Fachmann
Fachmann für DBase ???
Glaube ich nicht, dass es noch was was gibt.

Heiko

Ein Fachmann für dBase ist hier gar nicht so wichtig.
Es geht vielmehr um den Umgang mit dBase-Dateien von Delphi aus.
Wenn Du mir dafür einen Beispiel-Quellcode mit den grundsätzlichen Zugriffen wie Öffnen, Editieren, Schreiben posten kannst, dann hilft mir das schon weiter.

mkinzler 25. Mai 2010 16:10

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
dBase ist schon längst veraltet. Wenn du dein Programm schon umbaust, nimm lieber ein aktuelles DBMS. Hierfür findest du auch fachleute, die dir dann helfen können.

FriendOfDelphi 25. Mai 2010 16:48

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von mkinzler
dBase ist schon längst veraltet. Wenn du dein Programm schon umbaust, nimm lieber ein aktuelles DBMS. Hierfür findest du auch fachleute, die dir dann helfen können.

Grundsätzlich würde ich Dir da zustimmen.
Nur:
- das Programm läuft in einer Umgebung zusammen mit anderen Programmen, die ebenfalls auf diese dBase-Datei zugreifen.
- so antiquiert dBase-Dateien auch sein mögen; sie lassen sich (fast) mit einem einfachen Doppelklick in Excel laden.
Das sind die Gründe.

hoika 25. Mai 2010 17:02

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

Zitat:

Es geht vielmehr um den Umgang mit dBase-Dateien von Delphi aus.
Wenn Du mir dafür einen Beispiel-Quellcode mit den grundsätzlichen Zugriffen wie Öffnen, Editieren, Schreiben posten kannst, dann hilft mir das schon weiter.
Nun ja, wenn du hier nach TDbf suchst,
hatte ch auch ein paar Bsp.-e drin gehabt.


Heiko

exilant 25. Mai 2010 18:20

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von FriendOfDelphi

- so antiquiert dBase-Dateien auch sein mögen; sie lassen sich (fast) mit einem einfachen Doppelklick in Excel laden.

Mir würde es den Schweiss auf die Stirn treiben wenn ein Anwender mal eben eine Tabelle aus einer Datenbank in Excel
öffnen und auch noch zurückschreiben könnte...
Solche Anforderungen löst man mit entsprechenden Exportfunktionen. Eine Routine zu schreiben die den Inhalt eines beliebigen Querys/Datasets in eine CSV Datei ausgibt (kann von Excel genauso einfach geöffnet werden) ist ein triviales Unterfangen.
Die Nachteile von DBFs sind dagegen enorm. Alles hat/hatte seine Zeit. Die von DBF ist vorbei.

Alfredo 25. Mai 2010 22:46

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Wenn Du Hilfe möchtest, dann sage doch bitte was passiert,
wenn Du in der IDE DB.active := True setzt.

Zuerst solltest Du einfach ein Formular mit Dataset, Datasource
und Datagrid anlegen.

Besorge Dir einen Hexeditor und prüfe was im ersten Byte steht,
da dbf nicht gleich dbf ist.

Gruß
Alfred

FriendOfDelphi 26. Mai 2010 11:45

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von Alfredo
Wenn Du Hilfe möchtest, dann sage doch bitte was passiert,
wenn Du in der IDE DB.active := True setzt.
Alfred

Wenn ich im Quellcode nur das "DB.Open" gegen das "DB.active := True;" ergeben sich keine Änderung.
Der Compiler meldet keinen Fehler.
Wenn ich das Programm aber laufen lasse, erhalte ich dieselben Fehlermeldungen (Fehler tritt nun in der Zeile mit dem DB.active auf):
"FieldList.Count ist <=0 beim Versuch, eine Datenbank zu erzeugen"
Und nach Bestätigung des OK-Buttons:
"Im Projekt PdBase.exe ist eine Exception der Klasse Exception aufgetreten. Meldung: 'Dataset error: 1401'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen."

Zitat:

Zitat von Alfredo
Zuerst solltest Du einfach ein Formular mit Dataset, Datasource
und Datagrid anlegen.
Alfred

Mit den Grafikkomponenten oder als "Runtime-Quellcode"?

Zitat:

Zitat von Alfredo
Besorge Dir einen Hexeditor und prüfe was im ersten Byte steht,
da dbf nicht gleich dbf ist.

Gruß
Alfred

Im ersten Byte steht: "03 6E 05 15 00 00 00 00"

exilant 26. Mai 2010 12:12

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Alfred: Im ersten Byte steht: "03 6E 05 15 00 00 00 00"
Plain dBase III, Ohne Memo (dbt), letztes Update am 21.05.2010, Tabelle enthält keine Records.

Ist das korrekt?


Edit: Dokumentation der dBase Formate

Neutral General 26. Mai 2010 12:14

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Kleine Anmerkung: Euch ist klar, dass das die ersten 8 Bytes sind? :wink:

exilant 26. Mai 2010 12:17

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von Neutral General
Kleine Anmerkung: Euch ist klar, dass das die ersten 8 Bytes sind? :wink:

Erbsen - Ähh - Bytezähler! :lol: :lol:

Alfredo 26. Mai 2010 13:18

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mein C++ Programmierbuch sagt zu 03 im ersten Byte

Zitat:

weist ursprünglich auf dBase III+ hin.
Andere Systeme wie Clipper, dBase IV, Foxpro
uws. benutzen diese Kennung ebenfalls.
Folgendes noch herausgefunden:
- VisualFoxpro(30) ist es nicht.
- xBase hat jedoch auch 03.

Zitat:

Mit den Grafikkomponenten oder als "Runtime-Quellcode"?
Mit den Grafikkomponenten. Schau einmal ob die BDE in der Toolpalette ist,
dann haben wir zum Testen eine gemeinsame Basis.

Es geht zunächst erst einmal nur darum, dass die Datei geöffnet und angezeigt
werden kann.

Später kommt dann alles in den Code.

Gruß
Alfred

Alfredo 26. Mai 2010 15:47

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Plain dBase III, Ohne Memo (dbt), letztes Update am 21.05.2010, Tabelle enthält keine Records.
Kann es sein, dass Du hier die Daten einer selbst erzeugten *.dbf angegeben hast?

Gruß
Alfred

FriendOfDelphi 26. Mai 2010 16:01

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von Alfredo
Zitat:

Plain dBase III, Ohne Memo (dbt), letztes Update am 21.05.2010, Tabelle enthält keine Records.
Kann es sein, dass Du hier die Daten deiner selbst erzeugten *.dbf angegeben hast?

Gruß
Alfred

Ja, dass ist richtig. Das sind die ersten 8 Bytes (danke exilant :wink: ) der dBase-Datei, die mit dem o.g. Quellcode erzeugt wurde.

hoika 26. Mai 2010 16:17

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Hallo,

ich dachte, Topaz läuft bei dir schon (allerdings nicht dynamisch) ?
Falls nicht, nimm lieber TDBF, oder Access, oder Firebird oder Oracle ... ;)


Heiko

Alfredo 26. Mai 2010 16:40

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Ja, dass ist richtig.
Du solltest erst einmal eine Kopie einer funktionsfähigen Datei
hernehmen und sehen ob Du diese öffnen und anzeigen kannst.

Gruß
Alfred

FriendOfDelphi 28. Mai 2010 12:10

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Liste der Anhänge anzeigen (Anzahl: 4)
Zitat:

Zitat von Alfredo
Zitat:

Ja, dass ist richtig.
Du solltest erst einmal eine Kopie einer funktionsfähigen Datei
hernehmen und sehen ob Du diese öffnen und anzeigen kannst.

Gruß
Alfred

Habe ich gemacht:
Delphi-Quellcode:
unit UTest;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, tzprimds, ucommon, utzcds, utzfds, Grids, DBGrids, atzgrids;

type
  TForm1 = class(TForm)
    TzDbf2: TTzDbf;
    DataSource1: TDataSource;
    TzGrid1: TTzGrid;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

end.
Die verwendete dBase-Datei ist bei den Beispielen von Topaz dabei (Dateien "MOVIE.DBF", "MOVIE.DBT" in Archiv "dBaseDateien.zip").
Bildschirmfoto des Formulars, sowie des Objektinspektors der Komponenten sind im Anhang (Dateien "Form.jpg", "TTzDbf_Objektinspektor_Eigenschaften.jpg", "TDataSource_Objektinspektor_Eigenschaften.jpg ").
Verwendete Komponenten: TDataSource (Borland Delphi), TTzDbf (Topaz), TTzGrid (Topaz)

Alfredo 28. Mai 2010 13:35

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
:thumb:

Nächster Schritt:

2 Buttons auf das Formular:

Delphi-Quellcode:
TzDbf2.active := TRUE;
Delphi-Quellcode:
TzDbf2.active := FALSE;
Im Objektinspektor Active auf FALSE setzen.

FriendOfDelphi 28. Mai 2010 15:11

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Alfredo
:thumb:

Nächster Schritt:

2 Buttons auf das Formular:

und

Delphi-Quellcode:
TzDbf2.active := TRUE;
und

Delphi-Quellcode:
TzDbf2.active := FALSE;

Im Objektinspektor Active auf FALSE setzen.


Gruß
Alfred

Erledigt! :-D
Delphi-Quellcode:
unit UTest;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, tzprimds, ucommon, utzcds, utzfds, Grids, DBGrids, atzgrids, StdCtrls;

type
  TForm1 = class(TForm)
    TzDbf2: TTzDbf;
    DataSource1: TDataSource;
    TzGrid1: TTzGrid;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  TzDbf2.active := TRUE;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TzDbf2.active := FALSE;
end;

end.

Alfredo 28. Mai 2010 16:11

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
:thumb:

Nächster Schritt:

den Tabellennamen im Objektinspector löschen

und im Activ-Button vor dem Active folgendes eingeben:

Delphi-Quellcode:
TzDbf2.TableName := 'Pfad\DateiName.dbf';
Damit bist Du in der Lage eine beliebige Datei zu öffnen und zu schliessen.

FriendOfDelphi 28. Mai 2010 17:05

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von Alfredo
Nächster Schritt:

den Tabellennamen im Objektinspector löschen

Ist erledigt.

Zitat:

Zitat von Alfredo
und im Activ-Button vor dem Active folgendes eingeben:
Delphi-Quellcode:
TzDbf2.TableName := 'Pfad\DateiName.dbf';

Das klappt nicht. Der Compiler meldet: "Undefinierter Bezeichner: 'TableName'"
Ich habe daher stattdessen folgende Eigenschaft verwendet:
Delphi-Quellcode:
  TzDbf2.DbfFileName := 'Pfad\DateiName.dbf';
Ist das identisch, oder verwechsle ich hier wieder Datei und Tabelle?

Zitat:

Zitat von Alfredo
Damit bist Du in der Lage eine beliebige Datei zu öffnen und zu schliessen.

Die fest im Quellcode verankert ist. Aber das war sie ja mit der grafischen Komponete (TTzDbf) vorher auch.

Zitat:

Zitat von Alfredo
Beim Versuch eine Tabelle per Programm anzulegen bin ich auf
einen Fehler aufgelaufen und ich denke ich weiss warum Dein
Programm abstürzt. Lösung habe ich aber noch nicht.

Bitte hänge die von Dir erstellte *.dbf an den nächsten Post
mit an.

Gruß
Alfred

Das Anlegen einer dBase-Datei ist kein Problem. Das habe ich schon geschafft:
Delphi-Quellcode:
unit Ubaue_dBaseDB;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, tzprimds, ucommon, utzcds, utzfds, utzmds;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    dbf: TTzVFile;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
   begin
     dbf := TTzVFile.Create(Application); { create an instance of TTzDbf }
     try
       dbf.DbfFields.Clear;                { clear the list of fields }
       dbf.DbfFields.Add('name,C,30,0');   { add desired fields }
       dbf.DbfFields.Add('age,N,3,0');
       dbf.DbfFields.Add('amount,N,10,2');

       dbf.DbfFilename := 'junk.dbf';   {specify the database name}

       dbf.Active := TRUE;                 { set active to true }
       dbf.WriteToDisk;
       dbf.Active := FALSE; { we are done creating the database }
     finally
       dbf.Free; { do not forget to free the instance }
     end;
   end;
end.
Das ist der leicht veränderte Beispiel-Quellcode von der Topaz-Web-Seite Topaz-FAQs.
Hier habe ich nur den Variablentyp ausgetauscht, dann wird die dBase-Datei erstellt:
Delphi-Quellcode:
VAR dbf: TTzDbf;
gegen
Delphi-Quellcode:
{ Private-Deklarationen }
dbf: TTzVFile;

Alfredo 28. Mai 2010 17:33

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Die fest im Quellcode verankert ist.
Aber das war sie ja mit der grafischen Komponete (TTzDbf) vorher auch.
Du kannst jetzt den Tabellennamen durch eine Variable ersetzen.

Alfredo 28. Mai 2010 17:39

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Ist das identisch, oder verwechsle ich hier wieder Datei und Tabelle?
Ja.

Alfredo 28. Mai 2010 18:32

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Es wird bei mir auch eine Datei erzeugt. Nur sie läßt sich mit Foxpro nicht öffnen.
Ich habe die Ursache hierfür gefunden. TableType muss ttFoxPro sein.

Alfredo 28. Mai 2010 19:47

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Liste der Anhänge anzeigen (Anzahl: 1)
So funktioniert es mit BDE und Foxpro:

Delphi-Quellcode:
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
table3.TableName := 'Pfad\test.dbf';
table3.TableType := ttFoxPro;
table3.Active := true;
table3.Append;
table3.FieldByName('test1').AsString := '20.05.2010 15:31:34';
table3.FieldByName('test2').asfloat := 40318.6469213;
table3.FieldByName('test3').AsFloat := 123.626;
table3.Post;
end;
q.e.d.

TBx 28. Mai 2010 19:50

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
ähm... weißt Du, was pushen ist? und auch, dass dieses hier unerwünscht ist? :warn:
Bitte editiere Deinen letzten Post, wenn dieser nicht mindestens 24 Stunden alt ist. Danke!

Alfredo 28. Mai 2010 20:10

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

ähm... weißt Du, was pushen ist? und auch, dass dieses hier unerwünscht ist? Warning
Bitte editiere Deinen letzten Post, wenn dieser nicht mindestens 24 Stunden alt ist. Danke!
Ich habe versucht jemandem zu helfen. Ich könnte meine knappe Freizeit auch anders verwenden. Es kostet mich eine Menge an Zeit dies alles zusammenzutragen, da die EDV nicht mein Hauptberuf ist.

Es macht m.E. keinen Sinn, Wissensstände die sich im Laufe des Tages weiter entwickelt haben, in einem Post zusammenzufassen, vor
allem wenn ich nicht weiss ob der Empfänger die Information bereits abgerufen und diese weiter ver wendet hat.

Ich war zudem der Meinung, dass es in diesem Fall didaktisch sinnvoller ist den Empfänger der Information schrittweise an die Lösung
seines Problems heranzuführen, damit er sich auch selbst mit dem Thema auseinandersetzt.
Zitat:

Braucht Editieren länger, als einen neuen Beitrag zu erfassen?
Ist es wirklich sinnvoll, wenn die Anwort vor der Frage steht? Meines Erachtens: Nein. Es erfordert zudem für mich definitiv einen zusätzlichen Zeitaufwand.
Zitat:

Und warum nicht?
Weil ich z.B. einem Irrtum unterlegen bin und ich den Ersteller des Posts in eine falsche Richtung gelenkt, habe, was man so nachvollziehen
kann. Anders ist es einfach weg.

Meine Einstellung hat auch etwas mit meinem Beruf zu tun, bei dem ich es mich nervt, wenn nach ein paar Tagen die Information einfach abgeändert
da steht.

Ich nehme den Hinweis zur Kenntnis und werde dies beim nächsten Post berücksichtigen.

mkinzler 28. Mai 2010 20:31

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Diese Regel ist nunmal ein Teil unserer Forenregeln und hat sich bewährt.

Zitat:

Es kostet mich schon so eine Menge an Zeit dies alles zusammenzutragen, da EDV
nun mal nicht mein Hauptberuf ist.
Braucht Editieren länger, als einen neuen Beitrag zu erfassen?

Zitat:

Es macht zudem wie in diesem Fall keinen Sinn, Wissenstände die sich im Laufe des Tages
weiter entwickelt haben, in einem Post zusammenzufassen
Und warum nicht?

FriendOfDelphi 28. Mai 2010 21:05

Re: dBase-Datenbanken mit Topaz-Erweiterung
 
Zitat:

Zitat von Alfredo
So funktioniert es mit BDE und Foxpro:

Delphi-Quellcode:
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
table3.TableName := 'Pfad\test.dbf';
table3.TableType := ttFoxPro;
table3.Active := true;
table3.Append;
table3.FieldByName('test1').AsString := '20.05.2010 15:31:34';
table3.FieldByName('test2').asfloat := 40318.6469213;
table3.FieldByName('test3').AsFloat := 123.626;
table3.Post;
end;

q.e.d.

Gruß
Alfred

Und hier der entsprechende Quellcode mit BDE und Topaz:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  //TzDbf2.TableName := 'Pfad\test.dbf';
  TzDbf2.DbfFileName := 'Pfad\test.dbf';
  //TzDbf2.TableType := ttFoxPro;
  TzDbf2.Active := true;
  TzDbf2.Append;
  TzDbf2.FieldByName('name').AsString := '20.05.2010 15:31:34';
  TzDbf2.FieldByName('age').asfloat := 40318.6469213;
  TzDbf2.FieldByName('amount').AsFloat := 123.626;
  TzDbf2.Post;
end;
Das ist schon einmal der erste Schritt.
Aber noch bestehen grafische, feste Komponenten (TTzDbf, TDataSource). Diese müssen noch durch Quellcode ersetzt werden.
Die Spalten der dBase-Datei sollen ja zur Laufzeit aus den Einträgen einer ini-Datei erstellt werden.
Anschließend soll dann mit diesen dynamisch generierten Spalten gearbeitet werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.

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