Frax mit PostgreSQL

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Frax mit PostgreSQL

Beitrag 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?
es grüßt

Werner

<when the music is over, turn off the lights!>
Christian
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 44
Registriert: Mi, 18. Jul 2007 15:05

Re: Frax mit PostgreSQL

Beitrag 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
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Frax mit PostgreSQL

Beitrag 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.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Frax mit PostgreSQL

Beitrag 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)
Gruß
Hubert
Antworten