Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 1 von 4  1 23     Letzte »    

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