|
|
#1 |
|
Registrierter Benutzer
|
Tabellensplit mit OA4
Hallo OA4-Fans !
schön, daß ich auf dieses Forum gestoßen bin, denn... Info`s über OA4 sind heute ja heute nicht mehr gerade üppig gesät.... Nun zu meinem Problem: In unserer Klinik ist eine OA4-Datenbank im Einsatz, die bestimmte Röntgeninformationen verwaltet. Da sich niemand im Hause mehr mit OA4 auskennt(ich leider auch nicht...) ist mir der Auftrag erteilt worden, die Applikation nach MS-Access zu portieren. Dass man die Daten als CSV oder im dbf-Format exportieren kann habe ich ja schon herausgefunden. Der Export ins dbf-Format klappt bis ungefähr zu einem Drittel, dann passiert nichts mehr. (Datensatz 121000) Die Tabelle ist ca. 94 MB groß. Der Weg müßte also über einen Split der Tabelle in mehrere kleinere Tabellen gehen, die sich dann exportieren und wieder zusammensetzen lassen. So weit so gut.. Leider habe ich keinerlei Aufzeichnungen über OA4, Programmier-Syntax etc. und der Programmierer ist auch nicht mehr greifbar. Wie codiere ich so einen Tabellensplit? Ich bin für jeden Tip dankbar! mfg Gerhard |
|
|
|
|
|
#2 |
|
Entwickler
|
Hallo Gerhard !
Hat deine Tabelle auch ein Datum ? Ich kann dir dann meine Version des Tabellen Splittings hier rein kopieren. Du brauchst zum Auführen den Programmierer - mit dem Compiler alleine geht es nicht. Der Programmierer sollte im Hauptmenü von OA4 als Menüpunkt zu finden sein. |
|
|
|
|
|
#3 |
|
Registrierter Benutzer
|
Hallo,
ja, ich denke schon, daß es ein Datumsfeld gibt, nur... ich habe leider noch nicht den Punkt gefunden, wo man sich die Tabellendefinitionen anzeigen lassen kann...
|
|
|
|
|
|
#4 |
|
Entwickler
|
DATENBANK -> PFLEGE dann über F4 Tabelle suchen oder den Namen eingeben (siehe Abbildungen).
|
|
|
|
|
|
#5 |
|
Registrierter Benutzer
|
Ja, super schönen Dank, also es gibt ein paar Datumsfelder, und den Programmierer hab ich auch schon gefunden... ;-)
|
|
|
|
|
|
#6 |
|
Entwickler
|
Gut - jetzt noch die Frage ob deine OA4 Versionen einen funktionierenden COMPILER besitzt. Der sollte in einem der Untermenüs zu finden sein. Ansonsten musst du mir den Datenbanknamen samt Prefix, das JAHR mit dem der Split beginnen soll sowie den Feldnamen eines Datumfeldes welches immer befüllt ist und ich kompiliere dir das Programm fertig zum Einbinden bei dir.
Das Programm holt jeweils die Daten 1 Monats beginnend ab JAHR und speichert die Daten in eine neue Datenbank DAT_xx. Du kannst natürlich auch einen grösseren Zeitrahmen nehmen wenn die Menge der Daten/Monat nicht allzugross ist um die Anzahl der neu erzeugten Tabellen zu verringern. Hier das Programm dazu: Code:
! Tabellensplit für grössere Tabellen nach Datum ! ! Die Funktion muss compiliert werden, da der Programmierer das höchste Datum ! nicht automatisch ermitteln kann und einen Fehler ausgibt. ! Es werden Teile zu je einem Monat jeweils in eine separate Tabelle geschrieben ! Es müssen alle ROTEN Werte ersetzt werden. errors off local bool x=true local int monat = 1 local int jahr = 1984 local int dbcount = 1 local str zieldb = "" while x local date anfang = date(monat,01,jahr) local date ende = date(monat,31,jahr) local view daten=from deinedatenbank where datum>=anfang and datum<=ende use daten local int anz = count(daten) if anz > 0 zieldb = "main:dat_"&string(dbcount) put at 5,3 "Ziel Datenbank: "&zieldb put at 5,4 "Datumsbereich : "&string(anfang)&" bis "&string(ende) put at 5,5 "Gesamtdaten : "&string(anz) local bool ok = db_make(daten,zieldb,"","") dbcount = dbcount+1 end if use daten end if monat<12 monat = monat+1 else monat = 1 jahr = jahr+1 end if put do clear screen end while |
|
|
|
|
|
#7 |
|
Entwickler
|
Eine weitere Möglichkeit wäre natürlich, dass du mir die DF (FTP) schickst und ich konvertiere sie zu DBF mit unserem Tool. Allerdings natürlich Datenschutzrechtlich ein Problem.
|
|
|
|
|
|
#8 |
|
Registrierter Benutzer
|
Hallo,
du bist sehr hilfsbereit, vielen vielen Dank!! Hab mich heut morgen hingesetzt und nach ein bischen herumprobieren und ein paar Modifikationen hab ich`s aber mit deinem Code geschafft!! Waren so um die 240000 Datensätze, mußte erst noch ein bischen Müll entsorgen(steuerzeichen in den Feldern oder Datumseinträge wie 15.15.8063 :-), dann hab ich die Ausgabe auf ein Jahr umgesetzt, denn sonst hätt ich 163 Tabellen gehabt... Das war`s... Exportiert hab ich allerdings mit ner Runtime, die ich irgendwo auf ner australischen Site gefunden hab, meine Installation fror beim Export ein... (Tabellengrößen zwischen 6 und 8 MB???) na egal... Es hat geklappt und ohne deine Hilfe hätt ich`s sicher nicht geschafft. Man braucht halt manchmal einen Anstoß von außen, um weiter zu kommen!! Und... je mehr ich mich mit OA beschäftige, umso mehr fällt mir auf, wie genial dieses Programm ist. Aber... die Zeichen der Zeit... :-( Ich werd auf jeden Fall weiterhin ins Forum reinschauen, denn... Ich liebe Oldtimer!!! 1000 Dank von Gerhard |
|
|
|
|
|
#9 |
|
Entwickler
|
Na super - freut mich - leider ein potenzieller Kunde weniger der OA verwendet
Ich habe aber ohnehin beschlossen die Schnittstelle mit Ludwig zusammen fertig zu stellen. Auch wenn ich weltweit der Einzige bin der eine derartige Anbindung hat.
|
|
|
|