Einzelnen Beitrag anzeigen
Alt 27.06.2007, 14:47   #6
waldbauer.com
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
waldbauer.com ist offline   Mit Zitat antworten