![]() |
DBase (dbf) mit 3 Index-Dateien, aber werden nicht angezeigt
Ja ich hab hier eine dbf-DB mit 3 Index-Dateien mit der Endung NTX. Nach dem was ich bisher gelesen haben handelt es sich dabei um eine DBase III-DB, aber warum werden mir die Indexe nicht im Borlands Datenbank-Tool angezeigt? Wenn ich einen eigenen Index anlegen will fragt er nach ob er die DB "upgraden" soll(?), was er aber nicht soll denn die DB an sich darf nicht verändert werden (ich will nur Daten darin suchen und reinschreiben).
Also bisher suche ich Einträge in der DB mit "Locate" was aber auf Grund der größe der DB recht lange dauert. Kann ich das mit Hilfe der Index-Dateien beschleunigen (suche auch immer nur Daten aus der ersten Spalte)? Aber wenn wie, da ich ja nicht mal weiß was das für Indexe sind? |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hallo X-Dragon,
wenn ich mich nicht ganz täusche, dann kommen NTX-Dateien nicht von dBase sondern von Clipper. Deswegen werden sie wohl nicht angezeigt. Du solltest also versuchen, neue Indexe zu erstellen. Ach übrigens: die von mir schön häufiger werwähnten ADS-Komponenten können, galube ich, Clipper Indexe verarbeiten. |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
Eigentlich wollte ich keine zusätzlichen Komponenten verwenden, aber werd mir die mal ... ähm Montag anschauen, wenn es bis dahin nicht noch eine andere einfachere Lösungen gibt (hab seit 17 Uhr eigentlich Feierabend :shock: ). |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hallo X-Dragon.
Es gibt sehr wenige Komponenten, die Clipper/DBASEIII Indexe lesen können. Das Problem hatte ich auch um meine DOS-Anwendung nach Delphi zu portieren. Apollo untersützt das prima. Jedoch kostet diese Komponente Geld. du kannst dir ja mal eine Testversion ![]() Ich habe damit einige Tools programmiert und funktioniert ausgezeichnet. MfG, Ronny |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Ich hab mich mal erkundigt und anscheind ist das Programm wie die DB mit XBase++ entwickelt worden, aber da dies ein Nachfolger von Clipper ist ändert das wahrscheinlich nichts am Problem selber. Da das Tool nur für einen "Bekannten" meines Chefs sein soll, glaube ich nicht das er da noch zusätzlich Geld investieren will, vor allem da die Entwicklung schon etwas mehr Zeit verschlungen hat als geplant.
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Ich hab leider gerde nicht die Möglichkeit die DB mit dem dazugehörigen Programm zu testen, deshalb ben hier nochmal kurz die Frage. Kann die DB noch überhaupt noch genutzt werden wenn die Index-Dateien nicht aktualisiert werden?
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hallo X-Dragon,
das alte XBase++-Programm kann sicherlich noch genutzt werden, denn es würde die Index-Dateien ja selbst aktuell halten. Du wirst aber nicht so ohne Weiteres mit Delphi-Bordmitteln ein Programm erstellen können, das Daten in die Tabellen schreibt und dabei die Indizes gleich mitpflegt. Dafür brauchst Du die hier bereits genannten Komponenten. BTW: XBase++ ist nicht der Nachfolger von Clipper sondern ein eigenständiges Produkt, das nur die XBase/Clipper-Programmiersprache nutzt und hier offensichtlich auch die Clipper-Index-Dateien. |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
Kann ich wohl die Suche einiges beschleunigen, wenn ich das per SQL mache? ![]() |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hallo X-Dragon,
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hab aktuell gerade einen Testlauf am laufen und so wie es aktuell aussieht dauert es über 6,5 Std. bis er komplett durch ist. Also falls jemand noch Vorschläge hat, bin für alles offen (Try-finally, und sonstiges zur Statusanzeige hab ich erstmal alles rausgenommen damit es übersichtler ist):
Delphi-Quellcode:
var
i, z : Cardinal; nr : Single; str : String; dbtxt : TStrings; begin steppi := 0; dbtxt := TStringList.Create; dbtxt.LoadFromFile(QuellDB); z := dbtxt.Count; with TTable.Create(nil) do begin DatabaseName := 'EinAlias'; TableName := ZielDB; Open; for i := 1 to z -1 do begin str := AnsiToIBMAscii(Copy(dbtxt[i], 1,12)); if Locate('ARTN', str, []) then Edit else Append; FieldByName('ARTN').AsString := str; FieldByName('ARTU').AsString := AnsiToIBMAscii(Copy(dbtxt[i],13,12)); FieldByName('ARTD').AsString := AnsiToIBMAscii(Copy(dbtxt[i],27,12)); FieldByName('TAUS').AsString := AnsiToIBMAscii(Copy(dbtxt[i],39, 1)); FieldByName('BEZE').AsString := AnsiToIBMAscii(Copy(dbtxt[i],53,12)); if Trim(Copy(dbtxt[i], 69,7)) <> '' then begin nr := StrToInt(Copy(dbtxt[i], 69,7)) div 100; FieldByName('VK').AsFloat := nr; FieldByName('EK3').AsFloat := nr; end else begin FieldByName('VK').AsFloat := 0; FieldByName('EK3').AsFloat := 0; end; FieldByName('BCODE').AsString := AnsiToIBMAscii(Copy(dbtxt[i],76, 1)); FieldByName('PCODE').AsString := AnsiToIBMAscii(Copy(dbtxt[i],77, 1)); if Trim(Copy(dbtxt[i],134,7)) <> '' then FieldByName('EK1').AsFloat := StrToInt(Copy(dbtxt[i],134,7)) div 100 else FieldByName('EK1').AsFloat := 0; if Trim(Copy(dbtxt[i],141,7)) <> '' then FieldByName('EK2').AsFloat := StrToInt(Copy(dbtxt[i],141,7)) div 100 else FieldByName('EK2').AsFloat := 0; Post; Application.ProcessMessages; end; Close; end; end; |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
wenn die Datenbank nicht gemeinsam (gleichzeitig) mit der anderen Anwendung geöffnet wird kannst du sie exclusiv öffnen das bringt richtig Geschwindigkeit. Gruß Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Der Exclusive-Zugriff hat leider nicht wirklich was geändert ...
Aber ich hab jetzt XBase++ 1.1 aufgetrieben, nur leider kann ich irgendwie nix damit anfangen. Das einzige was ich gefunden habe sind 2 DLL-Dateien (DbfDbe.DLL u. NTXDbe.DLL) in einem Unterzeichnis des Programms. Ansonsten wird dort ja noch fast alles in DOS kompiliert etc und nur die Fenster kann man unter Windows zusammenbasteln. In den Code-Beispielen die dabei waren werden halt XBase-Befehle eingesetzt um auf die DBs zuzugreifen, aber das hilft mir irgendwie auch nicht weiter. Wie kann ich wohl die DB-Treiber nutzen? Ist es überhaupt so möglich? Alternativ bastel ich gerade an einer anderen Lösung. Und zwar das ich die Daten aus der DBF-Datei(100 MB) komplett in einen Paradox-DB übernehme (mit Index :)) dort dann die 230.000 Datensätze ver- und abgleiche und anschliessend die kompletten Daten wieder zurück in die DBF schreibe (die ich natürlich vorher ausleere). Und vom Programm das die DBF-DB dann nutzt, wird die DB dann sowieso neu reorganisiert. Dürfte zumindest schneller sein, als die vorherge Variante da diese nach letzten Schätzungen um die 8 Std. läuft ... |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
mit den XBase kannst du vergessen da wirst du keinen Chance haben. Was ich die anbieten könnte das du den Datenbankcode kapsels in einen extra Programm und ich das entsprechend mit Apollo compiliere. Gruß Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
ADS kann DBase3-Tabellen mit Clipper-, bzw XBase-Index. Also den NTX Dateien.
Hat r_kerber doch schon geschrieben. Also bei Extendetsystems mal den ARC32 runterladen, das ist die Datenbankoberfläche und Testen obs geht. Bei mir laufen die alten Clipper-Programme z. Teil auch noch, und mit meinen Delphiprogrammen greif ich auch auf die gleichen Tabellen und Index zu. Aber nicht vergessen: Diese Index müssen extra geöffnet werden. Und man muß wissen, welche Indexdatei zu welchet Tabelle gehört. Im Kopf der Indexdatei steht nur das Feld. Karsten |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
Zitat:
![]() Hab vorher schon mal danach gesucht bin aber nur auf der Server-Variante gestossen und das diese mehrere 100€ kostet ... |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
Apollo kostet $379 ![]() War das andere was ich dir angeboten habe keine Alternative ? Gruß Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
Erstmal wäre das wohl eine super Alternative, aber wie soll ich das denn "kapseln" so das ich auch auf Änderungen der DB-Struktur reagieren kann? |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
hol dir doch die Eval-Version von Apollo du entwickelst und ich linkes es für dich. Ich weiß natürlich nicht wie statisch das X-Base-Projekt ist also wie oft du anpassen mußt oder umgekehrt sich deine Quelldaten ändern. Grüße Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
du brauchst
Advantage TDataSet Descendant for Delphi/C++Builder, das sind die Komponenten für Delphi und Advantage Data Architect Utility (for Windows), das war früher ARC32, die Datenbanköberfläche. Die Server stehen im Moment nicht zur Debatte. Wenn du da was brauchst, sollte man sich direkt mit Extendedsystems - in Deutschland ,in Verbindung setzen. Da kannst du auch Serverversionen für 2 User bekommen. War zumindest bei der Version 6.2 noch so. Außerdem haben die einen hervorragenden Support wenns mal wirklich nicht weiter geht. - in deutsch. Karsten |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
![]()
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
Zitat:
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
mal interessenhalber: Kann man mit den genannten Komponenten also Programme erzeugen die beim Endkunden mit lokalen DBase-Datenbanken mit ntx/cdx Indizes laufen ? Rechtens wäre das höchst wahrscheinlich nicht aber machbar ? Grüße Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
@Sourcemaker: Doch das ist rechtens. dbf + Index-Dateien sind defacto offene Standards und TDataset ist Freeware! |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
@soucemaker
ist nicht nur machbar sondern auch erlaubt. Der Localserver ist FREI. und was bei r_kerber vor EVENTUELL steht, sind die 2 Downloadfiles die man haben sollte. Wirklich brauchen ist mit ARC32 die Frage. Braucht man bei Delphi die Datenbankoberfläche ? Ist aber wesentlich angenehmer wenn mans hat. Wirklich brauchen für eigene Programme : TDataset. Da ist der Localsever auch mit bei. edit: Übrigens ist ADS der Grund, warum ich mich von Apollo verabschiedet habe. Karsten |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Danke für die Infos.
Was hat denn den größten Vorteil im Vergleich zu Apollo ausgemacht ? Funktionen ? Geschwindigkeit ? Stabilität ? Müssen beim Enduser nur DLL´s installiert werden oder auch ein Localserver ? Ist es netzwerkfähig in der Version ? Gibt es auch wie in Apollo eine LocalSQL also auf diese lokalen Datenbanken über SQL-Befehle zugreifen ? Grüße Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Ahja danke. Hab beide Tools jetzt installiert und mit der Datenbank-Oberfläche kann ich die DB endlich auch "normal" laden (inkl. Index-Dateien, wenn auch manuell). Also soweit funktioniert es schon mal :).
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
@soucemaker
Ich hab wegen der Stabilität gewechselt. Probiers doch einfach mal aus. Kostet doch kein Geld. Brauchst eigentlich nur TDataset für den Anfang. Deine Tabellen kannst du ja anfangs auch mit Apollo erstellen, obwohl es programmtechnisch gesehen mit ADS ja auch geht. Kann eigentlich alles was Apollo auch kann, nur nicht so viel DBase-Syntax. Und die ADS-eigenen Tables können noch mehr. Der Localserver sind nur 2 DLL. Kannst dein Programm genau so installieren wie mit Apollo. Gruß Karsten |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Danke Karsten,
werde ich machen. Gruß Frank |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Wo steht denn welche DLLs ich brauche um die Software dann auch woanders laufen lassen zu können?
Einen großen Teil der Doku hab ich schon durch, aber dazu hab noch nix gefunden. [edit] Hab den LocalServer gefunden ... Wie sollte man auch auf die Idee kommen das die Anleitung dazu "Advantage Local Server Readme" heißt ... :wall: |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Die stehen bei mir in einem Unterverzeichnis namens Redistribute.
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
C:\Programme\Extended Systems\Advantage\ARC :gruebel: Zumindest eine Datei hab ich dort schon mal gefunden, aber das schau ich mir morgen nochmal genauer an. Hab jetzt auch in der Hilfe eine ausführliche Beschreibung gefunden die mir wohl sehr weiter helfen wird: "ads.ini File Support" [edit] Also am einfachsten dürfte es ja anscheind sein, wenn man die DLLs und auch die ads.ini ins Programmverzeichnis packt und dann auch dort alles wichtige schon mal einstellt, dann dürfte man sich ja z.B. die adcConnection-Komponente sparen können. |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Bei mir C:\Programme\Extended Systems\Advantage\TDataSet\Redistribute.
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Ins Verzeichnis gegangen. Mauszeiger auf ace32.dll. Rechte Maustaste - Eigenschaften. Version 7.0.0.2!
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Zitat:
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Wenn ich mich recht entsinne, wirst Du bei der Installation des TDataSet Descendant gefragt, ob Du ein solches Verzeichnis anlegen lassen willst. Und bei mir sind da 6 Dateien drin, 3 DLL's, 2 CHR's und 1 CFG!
|
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
[edit] na toll, jetzt will er es nicht mal nachinstallieren, aber hoffentlich sind es die selben Dateien die auch im Programmverzeichnis sind (s. Anhang) . |
Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez
Hi,
habe mir TDataSet und auch Data Architect installiert kommen aber nicht mit meinen Memos klar entweder kommt 5001 zu wenig Arbeitsspeicher oder 7010 Problem with Advantage Server File Read müßte erste die Daten einmal umkopieren wie ich nachgelesen habe. Davon abgesehen ist die lokal Version nicht vollkommen frei sondern auf 5 Benutzer begrenzt also Vorsicht ! Grüße :xmas: Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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