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