|
|
Re: alternative zu copy to- #14660 in section [729388] |
Sec: |
(51) MS-Visual FoxPro 9.0 |
Von: |
Olaf Doschke |
An: |
Jörg_Schneider |
Am/Um: |
16.01.2011 20:56:00 gelesen |
--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.
|
|
|
|