AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBase (dbf) mit 3 Index-Dateien, aber werden nicht angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

DBase (dbf) mit 3 Index-Dateien, aber werden nicht angezeigt

Ein Thema von X-Dragon · begonnen am 5. Dez 2003 · letzter Beitrag vom 11. Dez 2003
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 9. Dez 2003, 12:01
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;
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 9. Dez 2003, 13:41
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
Frank
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#13

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 9. Dez 2003, 14:17
Zitat von Sourcemaker:
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
Danke für den Tip, daran hab ich noch gar nicht gedacht. Also auf die DB hab ich exklusiven Zugriff, kann es also gut einsetzen .
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#14

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 11:34
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 11:52
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
Frank
  Mit Zitat antworten Zitat
KarstenW

Registriert seit: 17. Nov 2003
Ort: nördlich der Donau
32 Beiträge
 
Delphi 5 Professional
 
#16

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 12:24
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
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#17

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 12:43
Zitat von Sourcemaker:
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
Schade, wäre auch wirklich zu einfach gewesen ... Danke für das Angebot, aber vielleicht klappt das ja mit ADS, dann wäre ich auch felxibler falls sich zwischendurch irgendwas an den DBs ändert.

Zitat von KarstenW:
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
Was brauch denn da jetzt, blick da nicht so ganz durch (und kann man das kostenlos nutzen?):
http://www.extendedsystems.com/ADS/B...+Downloads.htm

Hab vorher schon mal danach gesucht bin aber nur auf der Server-Variante gestossen und das diese mehrere 100€ kostet ...
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 12:48
Hi,

Apollo kostet $379 Apollo-Homepage

War das andere was ich dir angeboten habe keine Alternative ?

Gruß

Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#19

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 12:55
Zitat von Sourcemaker:
Hi,

Apollo kostet $379 Apollo-Homepage

War das andere was ich dir angeboten habe keine Alternative ?

Gruß

Frank
Und mein Chef will kein Geld dafür ausgeben .

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?
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: DBase (dbf) mit 3 Index-Dateien, aber werden nicht angez

  Alt 10. Dez 2003, 13:20
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
Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 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