Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Frax mit PostgreSQL

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
Beiträge: 1288
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Frax mit PostgreSQL

Beitrag von Werner_Bayern » Sa, 12. Jul 2014 13:19

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 euch

Werner

Christian
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 44
Registriert: Mi, 18. Jul 2007 15:05

Re: Frax mit PostgreSQL

Beitrag von Christian » Mo, 21. Jul 2014 11:58

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
Programmier-Gott
Programmier-Gott
Beiträge: 1288
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Frax mit PostgreSQL

Beitrag von Werner_Bayern » Mo, 21. Jul 2014 16:00

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 euch

Werner

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13764
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frax mit PostgreSQL

Beitrag von brandelh » Mo, 21. Jul 2014 19:27

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