Seite 1 von 1

Frax mit PostgreSQL

Verfasst: Sa, 12. Jul 2014 13:19
von Werner_Bayern
Servus,

hat sich da schon mal jemand Gedanken gemacht? Dürfte so ja wohl nicht mehr funktionieren, sobald man auf PostgreSQL umstellt?

Re: Frax mit PostgreSQL

Verfasst: Mo, 21. Jul 2014 11:58
von Christian
Hallo Werner,

das ist ja das gute am FRAX. Dieser bringt keine eigenen Datenbanktreiber mit und kann alles was dein Programm auch kann. (genauso gut, aber auch genauso schlecht)
Die Methode :SetWorkArea wird wahrscheinlich wirklich nicht mehr funktionieren. Dafür gibt es aber :SetUserDataSet.
Damit können eigene Datasets deklariert werden. Dabei müssen nur entsprechende Codeblöcke zum navigieren übergeben werden.

Die Deklaration mit den bisher bekannten Datenbankfunktionen könnte folgendermaßen aussehen:

Code: Alles auswählen


	cFields := ""

	AEval( (cAlias)->( DBSTRUCT() ), {|a| cFields += a[DBS_NAME] + ";" } )
	cFields := Left( cFields, Len( cFields ) - 1 )        // letztes ";" entfernen

	frReportManager:SetUserDataSet( cAlias, cFields, ;
									{|| (cAlias)->( DBGOTOP() ) }, ;			// Positionierung auf Satzanfang
									{|| (cAlias)->( DBSKIP() ) }, ;			// nächster Datensatz
									{|| (cAlias)->( DBSKIP(-1) ) }, ;			// vorheriger Datensatz
									{|| (cAlias)->( EOF() ) }, ;				// Eof prüfen
									{|feld| (cAlias)->( FIELDPOS( FIELDNAME(feld) ) ) } )		// Feldwert abfragen


Wer lieber mit Objekten arbeitet, kann natürlich auch Methoden einer Klasse zum navigieren benutzen... auch Arrays sind möglich.
Solange du also weißt, wie in der SQL-Abfrage navigiert werden soll, muss es nur noch FRAX beigebracht werden.

Gruß
Christian


Edit: Fieldname() durch Fieldpos() ersetzt

Re: Frax mit PostgreSQL

Verfasst: Mo, 21. Jul 2014 16:00
von Werner_Bayern
Servus Christian,

das wusste ich gar nicht, dass das auch mit Feldern geht, steht nirgends in der Doku. Hab das bisher nur mit Arrays gemacht. Interessant, danke! Werde das bald testen, bin eh am Experimentieren mit CTP4. Geht dann wohl nur über die ISAM-Emulation.

Re: Frax mit PostgreSQL

Verfasst: Mo, 21. Jul 2014 19:27
von brandelh
Ich würde grundsätzlich über Arrays gehen, so kann man Ausgabe von Datenauswertung trennen und vorher die Ergebnismenge anzeigen ...
"Möchten Sie wirklich 5000 Zeilen drucken ?" 8)