deutschsprachige FoxPro User Group
Forum View
Home
  
  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.




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