Probleme mit DbImport()?
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14644
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Probleme mit DbImport()?
Hat jemand von Euch schon mal das Phänomen gehabt, das beim DbImport() die Inhalte verschiedener Felder einfach verloren gehen? Hier sind es immer die gleichen drei numerischen und character Felder. Mal werden die Werte übernommen, mal nicht. Auch nicht immer bei allen Datensätzen eines Imports. Normalerweise werden die meisten Daten korrekt übernommen, nur in manchen Sätzen halt nicht. Der Import betrifft normalerweise bis zu ca. 20 Datensätze, also nicht wirklich umfangreich.
Datenbanken sind Clipper mit DBFNTX.
Jan
Datenbanken sind Clipper mit DBFNTX.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14644
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Moin Tom,
Server ist Windows 2003. Clients Windows 7, fast durchgängig 32 Bit, nur zwei oder drei Rechner mit 64 Bit. Ansonsten gibt es keinerlei Probleme mit den Datenbanken. Auch nicht mit DbImport(). Nur an einer einzigen Stelle. Hier werden wie gesagt bei einem DbImport()-Durchgang in machen Datensätzen die Daten aus drei Feldern manchmal verschluckt.
Jan
Server ist Windows 2003. Clients Windows 7, fast durchgängig 32 Bit, nur zwei oder drei Rechner mit 64 Bit. Ansonsten gibt es keinerlei Probleme mit den Datenbanken. Auch nicht mit DbImport(). Nur an einer einzigen Stelle. Hier werden wie gesagt bei einem DbImport()-Durchgang in machen Datensätzen die Daten aus drei Feldern manchmal verschluckt.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14644
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Nein.
Vielleicht etwas blöde Frage: Muß das sein beim Windows 2003-Server? Der kann doch noch kein SMB2, oder? Und wie gesagt - es gibt gibt neun Stellen, in denen DbImport() genutzt wird. Nirgends mit Problemen, bis auf diese eine. Und auch sonst keine Datenprobleme.
Jan
Vielleicht etwas blöde Frage: Muß das sein beim Windows 2003-Server? Der kann doch noch kein SMB2, oder? Und wie gesagt - es gibt gibt neun Stellen, in denen DbImport() genutzt wird. Nirgends mit Problemen, bis auf diese eine. Und auch sonst keine Datenprobleme.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2513
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Probleme mit DbImport()?
@Jan, ich kenne das Problem, ich habe dann auf DBImport() verzichtet ..... Hast du einmal den Dateiheader auf korrekten Aufbau geprüft?
Gruss
Carlo
Gruss
Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Jan
- Marvin
- Beiträge: 14644
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Hallo Carlo,
hast Du mal mit Alaska darüber gesprochen? Konntest Du eingrenzen, unter welchen Bedingungen das passiert? Und wie machst Du jetzt den Import?
Jan
hast Du mal mit Alaska darüber gesprochen? Konntest Du eingrenzen, unter welchen Bedingungen das passiert? Und wie machst Du jetzt den Import?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2513
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Probleme mit DbImport()?
@Jan, nein ich habe nicht mit Alaska gesprochen. Ich hatte das Problem an einem WE und musste an diesem WE das Problem lösen und mehrere 100 DBF's einlesen. Ich verwende die Funktion DBImport() grundsätzlich nicht mehr. Ich habe mir eine eigene geschrieben welche Datenfelder die in beiden Datenbanken vorhanden sind einliest und per Codeblöcke gesteuert und zusätzlich Aufgaben erledigen kann. Meist sind ja sowieso noch Feldprüfungen und änderungen nötig. Ausserdem gibt DBImport() keine Erfolgsmeldung zurück, z.b. Anzahl eingelesener Sätze, das macht Sie unberechenbar.
Gruss
Carlo
Gruss
Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9351
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 360 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Ich habe DbImport an den wenigen Stellen, wo ich die Funktion bisher genutzt habe, ebenfalls durch eine eigene Funktion ersetzt, mit FieldGet() und FieldPut() und einem einmaligen Strukturvergleich. Allerdings kann ich mich nicht erinnern, dass DbImport zuvor "Auslassungsprobleme" hatte - ersetzt habe ich es (ebenfalls) nur, um bessere Kontrolle zu haben.
Du hast mit dem Codeblock in der "WhileCondition" (vierter Parameter) eigentlich durchaus die Möglichkeit, erstens die Anzahl der Datensätze mitzuzählen und zweitens beispielsweise einen Progressbar zu aktualisieren. Und natürlich ließe sich an dieser Stelle noch sehr viel mehr machen (Vergleichsoperationen usw.). "Unberechenbar" ist die Funktion eigentlich nicht.Ausserdem gibt DBImport() keine Erfolgsmeldung zurück, z.b. Anzahl eingelesener Sätze, das macht Sie unberechenbar.
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2513
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Probleme mit DbImport()?
@Tom, siehst du, auch du verzichtest. Aber ich korrigiere mich gerne: Ich finde die Funktion unberechenbar
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9351
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 360 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Ich verzichte, weil ich eigentlich keine klassische Verwendung für DbImport habe. Doch, eine, und die ist, wie ich gerade gesehen habe, immer noch aktiv: Beim Packing von Tabellen mit Memofeldern (Strukturkopie wird erzeugt, DbImport, bei Erfolg Umbenennung der Tabellen). Problemlos in diversen Topologien. Nur auf den nötigen Massenspeicherplatz sollte man vorher schauen.
Mein DbImport-Ersatz kümmert sich nebenbei um Abhängigkeiten und Feldersetzungen. Das habe ich vorher nach dem DbImport gemacht. Dadurch hatte ich zuweilen zwei weitere nötige Schritte, um beispielsweise überflüssig gewordene Felder zu entfernen, die ich aber während des Kopierens noch benötigte. Mein eigener Ansatz erlaubt all das innerhalb eines Arbeitsganges. Und er ist auch noch ein paar Millisekunden schneller als DbImport.
Mein DbImport-Ersatz kümmert sich nebenbei um Abhängigkeiten und Feldersetzungen. Das habe ich vorher nach dem DbImport gemacht. Dadurch hatte ich zuweilen zwei weitere nötige Schritte, um beispielsweise überflüssig gewordene Felder zu entfernen, die ich aber während des Kopierens noch benötigte. Mein eigener Ansatz erlaubt all das innerhalb eines Arbeitsganges. Und er ist auch noch ein paar Millisekunden schneller als DbImport.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Probleme mit DbImport()?
nicht das ich dich falsch verstehe : du "importierst" 20 "Datensätze" in/aus einer Cl*pper DBF von/nach Xbase++ DBF ?Jan hat geschrieben:Der Import betrifft normalerweise bis zu ca. 20 Datensätze, also nicht wirklich umfangreich.
Datenbanken sind Clipper mit DBFNTX.
schau dir doch mal C:\ALASKA\XPPW32\Source\SYS\dbbulk.prg an
p.s. ich benutze (immer noch) APPEND FROM xxxx FIELDS ... FOR FORprogressbar() WHILE ...
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14644
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Jimmy,
Du verstehst falsch. Wir importieren BIS ZU 20 Datensätz aus einer Clipper-Datenbank in eine andere Clipperdatenbank.
Jan
Du verstehst falsch. Wir importieren BIS ZU 20 Datensätz aus einer Clipper-Datenbank in eine andere Clipperdatenbank.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Probleme mit DbImport()?
Ich machs auch so.Tom hat geschrieben:Ich habe DbImport an den wenigen Stellen, wo ich die Funktion bisher genutzt habe, ebenfalls durch eine eigene Funktion ersetzt, mit FieldGet() und FieldPut() und einem einmaligen Strukturvergleich.
Du könntest als Alternative bei ganz wenigen Datensätzen nach ganz alter Manier mit COPY TO ("temporärdatei") und einem nachfolgenden Append vorgehen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...