deutschsprachige FoxPro User Group
Forum View
Home
  
  Re: alternative zu copy to- #14665 in section [729393]
Sec: (51) MS-Visual FoxPro 9.0
Von: Jörg_Schneider
An: Olaf Doschke
Am/Um: 17.01.2011 10:02:39

--from Newsreader at Montag, 17. Januar 2011; 10:02:39--

Moin nochmal Euch allen.

Erstmal danke für Deinen TempDBC/DBF Test. Muss ich dann nicht mehr testen

Also ich erstelle hier keine kompletten Abzug einer DB. Wir protokollieren jede Änderung ein einer eigenen Tabelle (per Trigger). Diese Änderungstabelle wird dann quasi per "Export seit dem Letzten Export" ausgelesen und in diese DBF geschrieben.
Beim Jahreswechsel werden dann halt bei ein zwei unserer Kunden leider extrem viel Daten generiert.

Aber egal, nen einfachen weg gibt es da jetzt mal nicht, intern haben wir da schon div. Konzepte wie wir das besser Handeln können, aber die kosten etwas mehr Aufwand als einfach einen copy to in einen ??? umzuwandeln

Also nochmal danke an alle beteiligten, ich hab dann nen bissel was zu programmieren

Grüße
Jörg

Am 16.01.2011 20:56, schrieb Olaf Doschke:
> --from Newsreader at Sonntag, 16. Januar 2011; 20:56:00--
>
> >Ich hatte gehofft jemand hat noch nen Trick auf Lager, so ala mit Hilfe von
> >??? kann man die TMP Datei in eine "wirkliche" >dbf umwandeln
>
> Ein Cursor ist ja bereits ein DBF, das ist nicht das Problem, aber es ist
> eine exklusiv geöffnete DBF und sie gehört auch schon einem DBC, ebenfalls
> im TEMP-Verzeichnis, an. Und auch der ist wiederum exklusiv offen.
>
> Daher dürfte auch Thomas Geisslers Idee ADD TABLE DBF("Cursoralias") nicht
> gehen.
> Mal Scherzeshalber ausprobiert:
>
> Sys(3050,1,512*1024)
> Sys(3050,2,512*1024)
> Cd GetEnv("Temp")
> Create Database test.dbc
> Create Cursor curTest (iid i, cText C(10))
> Append Blank
> Set Notify Cursor off
> Do While !File(Dbf("curTest"))
> Append from Dbf("curTest") && Datensätze verdoppeln
> EndDo
> ? reccount()*recsize()+header()
> Add Table Dbf("curTest")
>
> Ergibt den Fehler "File is in Use" bei Add Table. Und wenn man den Cursor
> schließt, ist die Datei eben weg. Mal abgesehen davon wäre die DBF des
> Cursors schon Bestandteil einer DBC, ebenfalls Tempdatei, was das nächste
> Problem wäre. Du kannst diese DBC nicht aktivieren, um dort dann REMOVE
> TABLE auszuführen.
>
> Es steht Dir immer noch offen, mit bcp o.ä. am Server zu arbeiten und in
> einem Schritt eine CSV Datei zu generieren. Und dann die nicht in eine DBF
> zu wandeln, was ja witzlos wäre, sondern den Datenaustausch auch über
> CSV-Dateien zu ermöglichen. Das hat allerdings einige Stolperfallen, wie
> z.B. daß Append From CSV u.U. nicht einfach läuft.
>
> Eine ganz andere Idee wäre, ein Teil der Daten, die sich evtl. sogar über
> Jahre nicht mehr ändern, in einen Archivbereich zu packen. In den meisten
> Systemen ergibt sich, daß ein großteil der Daten nur noch lesend und für
> statistische Zwecke weitergeführt werden. Dann ist weniger auszutauschen und
> der Abzug der Daten einfacher.
>
> Oder Du detached to mdf/ldf und gibst die komplett mit als Datenaustausch,
> das wäre auch jeden Fall das schnellste, wenn es die ganze Datenbank ist.
>
> Tschüß, Olaf.



Jörg_Schneider   07.01.2011 11:56
Harro Schippan  07.01.2011 15:34
Hans-Peter Grözinger  07.01.2011 15:44
Olaf Doschke  07.01.2011 23:25
Jörg_Schneider  13.01.2011 09:51
Olaf Doschke  16.01.2011 20:56
Jörg_Schneider  17.01.2011 10:02
Thomas Geissler  13.01.2011 10:56
Bernhard Sander  13.01.2011 13:28
  
zurück zum Forum