Was ist eine gute Möglichkeit, auf DBASE-Dateien mit BDE und DELPHI zuzugreifen?

StackOverflow https://stackoverflow.com/questions/3221364

  •  13-09-2020
  •  | 
  •  

Frage

Zunächst muss ich angeben, dass ich ein komplettes Neues bin, wenn es um Delphi geht, obwohl ich eine Turbo-Pascal-Programmierung in der Schule tat, bis etwa vierzehn Jahre ...

Ich habe ein kommerzielles Delphi-Programm, das die DBASE-Datenbank und BDE für den Zugriff auf sie verwendet.Ich muss grundsätzlich eine weitere in C # in C # in diese Datenbank geschriebene Anwendungsschnittstellen einstellen, um SQL-Vorgänge, z. B. SELECT, INSERT, INSERT, UPDATE und Löschen zu können.

Bei Verwendung von OLEDB gegen DBASE-Ergebnisse in gebrochenen Indizes scheinen nur native BDE-Apps in der Lage zu sein, die Daten sicher auf die Daten zugreifen zu können.

Die allgemeine Idee bestand darin, eine einfache Delphi-Konsolen-Anwendung zu erstellen, die SQL-Anweisungen von Standardeingang (Read / Readln) lesen und CSV-Daten an die Standardausgabe (Writeln) ausgeben können.

Wie würde ich das tun?

Ich habe einen einfachen Ttable-Zugriff auf die Arbeit erfolgreich mit dem folgenden Code:

generasacodicetagpre.

Gibt es eine Möglichkeit, dass ich das Gleiche erreichen könnte, sondern durch Ausführen von Direkt-SQL-Anweisungen stattdessen?

War es hilfreich?

Lösung

Sie können dasselbe mit TQuery-Komponenten tun:

generasacodicetagpre.

Andere Tipps

As SERG hat bereits geschrieben: Sie können ein TQuery-Objekt verwenden, um SQL-Abfragen auf dBase-Tabellen auszuführen.Aber Achtung: Die Art und Weise, wie Sie das vorschlagen, dies zu tun, indem Sie eine SQL-Abfrage an ein Programm über stdin übergeben und die Ergebnisse auf stdout zurückgeben - ist bei Windows sehr langsam.

Sie müssen auch zusätzliche Befehle zu Ihrem Programm hinzufügen, um die Daten in Chargen zurückzugeben, wenn das Ergebnis einer Abfrage riesig ist. Es ist wahrscheinlich einfacher und gibt Ihnen viel bessere Leistung, um einen COM-Server in Delphi zu schreiben, einer Verwendung von C #.

und ein letzter Punkt: Die BDE wurde von Borland / CodeGear / Embarcadero seit mehreren Jahren nicht unterstützt.Es funktioniert immer noch, aber es wird härter und schwieriger, es so zu behalten, insbesondere bei neueren Windows-Versionen als XP.Eine Alternative könnte TDBF sein (siehe SourceForge), aber ich habe nicht genug Erfahrung damit, Ihnen eine informierte Meinung dazu zu geben.

Seit dem bde wurde seit seiner Vorschrift vor 10 Jahren nicht gepflegt:

Haben Sie in Betracht gezogen internationaler Datenbankserver ?Es ist ein Server, der auf DBASE, Clipper und andere zugreifen kann xbase

es funktioniert wirklich nett, und es gibt ein .NET-DatenanbieterVerfügbar dafür .

das würde Ihren Lösungspfad sehr weniger komplex machen.

- Jeroen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top