Erste Erfahrungen mit DataObjects
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Erste Erfahrungen mit DataObjects
Hubert,
kannst Du denn mal generell was zu den DataObjects sagen hier im Forum?
kannst Du denn mal generell was zu den DataObjects sagen hier im Forum?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Alaska-Subskriptionsangebot für Vereinsmitglieder
bisher habe ich damit nur ein bisschen gespielt, meine Überlegungen gehen im Prinzip davon aus,
dass ich einen Datensatz in einem DataObject vorhalte und dann einfach per Feldnamen darauf zugreifen kann, etwa so:
wie man sieht, kann man mit den gewünschten Feldnamen einzeln arbeiten, ohne diese bei allgemeinen Funktionen zu benötigen.
Die Funktion wird immer alle Felder einlesen und solange man keine neuen Felder im Hauptprogramm ausgeben will passt es !
So könnte ich mir z.B. auch Ausgaben von SQL Servern vorstellen, Einfache Arrays mit DataObjects.
Für Browser wäre natürlich etwas mehr Aufwand nötig, aber in diese Richtung gehen meine Überlegungen ... falls das Aktivierungsproblem gelöst wird
dass ich einen Datensatz in einem DataObject vorhalte und dann einfach per Feldnamen darauf zugreifen kann, etwa so:
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
procedure main()
local i, o, cI
set exclusive on
dbcreate("Test",{{"Feld1","C",10,0},;
{"Feld2","C",10,0},;
{"Feld3","N", 5,0},;
{"Feld4","D", 8,0},;
{"Feld5","L", 1,0} } )
use test
if neterr()
? "NETERR()"
inkey(5)
quit
endif
for i := 1 to 5
cI := alltrim(str(i))
dbAppend()
replace Feld1 with cI+" Feld1"
replace Feld2 with "Recno()="+alltrim(str(recno()))
replace Feld3 with recno()
replace Feld4 with date()
replace Feld5 with ((recno() % 2) = 0 ) // gerade ?
next
dbGotop()
do while ! eof()
o := ReadRecord(select())
? o:Feld1,o:Feld2,o:Feld3,o:Feld4,o:Feld5
dbSkip()
enddo
inkey(20)
return
function ReadRecord(nSelect)
local nFC := (nSelect)->(fcount())
local o := DataObject():new()
local i, cFN
for i := 1 to nFC
cFN := (nSelect)->(fieldName(i))
o:&(cFN) := (nSelect)->(fieldGet(i))
next
return o
wie man sieht, kann man mit den gewünschten Feldnamen einzeln arbeiten, ohne diese bei allgemeinen Funktionen zu benötigen.
Die Funktion wird immer alle Felder einlesen und solange man keine neuen Felder im Hauptprogramm ausgeben will passt es !
So könnte ich mir z.B. auch Ausgaben von SQL Servern vorstellen, Einfache Arrays mit DataObjects.
Für Browser wäre natürlich etwas mehr Aufwand nötig, aber in diese Richtung gehen meine Überlegungen ... falls das Aktivierungsproblem gelöst wird
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Alaska-Subskriptionsangebot für Vereinsmitglieder
als extra Thema wäre nicht schlecht, passt hier nicht unbedingt rein.Hubert,
kannst Du denn mal generell was zu den DataObjects sagen hier im Forum?
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Erste Erfahrungen mit DataObjects
Euer Wunsch war mir Befehl
Irgendwie hatte ich im Hinterkopf, dass Steffen mal mit einem Befehl einen kompletten Datensatz in ein DataObject kopiert hat,
ähnlich der Funktion scatter() und Arrays ...
PS: scatter() steht immer noch nicht in der Hilfe ...
Irgendwie hatte ich im Hinterkopf, dass Steffen mal mit einem Befehl einen kompletten Datensatz in ein DataObject kopiert hat,
ähnlich der Funktion scatter() und Arrays ...
PS: scatter() steht immer noch nicht in der Hilfe ...
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erste Erfahrungen mit DataObjects
es müsste viel "eleganter" gehenbrandelh hat geschrieben:Euer Wunsch war mir Befehl
Irgendwie hatte ich im Hinterkopf, dass Steffen mal mit einem Befehl einen kompletten Datensatz in ein DataObject kopiert hat,
ähnlich der Funktion scatter() und Arrays ...
du kann zu einem DataObject "beliebige Ivar" definieren z.b. die "Feld" Namen der DBF.Sander Elias <Sander Elias>
27. März 2015
public.xbase++.postgresql
Small helper functions for conneciton strings
Hi all,
As I was really annoyed by the connection string manipulation all the time, I wrote this small helper functions
perhaps it is of some use to someone:RegardsCode: Alles auswählen
function connectSettings() local oSet := dataObject():new() // in this sample I set the needed info from strings // in a real project, you should read it from a configuration oSet:DBE := "pgdbe" oSet:SERVER := "LocalHost" oSet:UID := "postgres" oSet:PWD := "postgres" oSet:DB := "xppsamples" oSet:defineMethod("asString","_connectSettingsToString") // return the connection as an easy to use dataObject // the asString method will return a connection string as needed // by all the SQL and DACsession stuff. return oSet function _connectSettingsToString(self) local aMembers := self:classDescribe(CLASS_DESCR_MEMBERS) local cRet := "" aEval(aMembers,{|e|cRet += e[1] + '=' + self:&(e[1]) + ";"}) return cRet
Sander Elias
--------------------------------------------
also a member off the XXP (http://www.xxp.nl)
hm ... ich frage mich ob solch ein Pseudo-Code laufen würde
Code: Alles auswählen
local oSet,aStru,i,iMax
USE TEST
aStru := DBSTRU()
iMax := LEN(aStru)
FOR i := 1 TO iMax
oSet := dataObject():new()
// can i create MEMBER Name "on-fly" and assign Value ?
// does this work ???
oSet:aStru[i][DBS_NAME] := &(aStru[i][DBS_NAME])
// need to add into Array ... how to "skip" a dataObject() like ot4xb GWST
AADD(aData,oSet)
NEXT
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Erste Erfahrungen mit DataObjects
Ich bereite ja gerade einen Vortrag für das Forentreffen zu dem Thema vor.
Und habe inzwischen auch, nachdem meine eigene Hauptanwendung nun auf 2.0 umgestellt ist, auch darin mit DO gearbeitet. Man muß sich ein wenig daran gewöhnen, aber dann ist das echt super.
Jan
Und habe inzwischen auch, nachdem meine eigene Hauptanwendung nun auf 2.0 umgestellt ist, auch darin mit DO gearbeitet. Man muß sich ein wenig daran gewöhnen, aber dann ist das echt super.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.