wenn ich mit DBSTRUC() ein Array habe wie ziehe ich mir nur die Spalte z.b. DBS_NAME raus ?
Code: Alles auswählen
aCopy := AEVAL(aDbstru,{|a,i| a := a[DBS_NAME],,,.T.})
Moderator: Moderatoren
Code: Alles auswählen
aCopy := AEVAL(aDbstru,{|a,i| a := a[DBS_NAME],,,.T.})
Code: Alles auswählen
aName := array( len(aBdbstru) )
AEVAL(aDbstru,{|a,i| aName[i] := a[DBS_NAME]})
dafür gibt es ACLONE() wenn man es nicht will was man "vorher" ja "sichern" kann.UliTs hat geschrieben:Du zerstörst dabe den Inhalt von aDbstru!
ich benötige nur die "Feld" Namen weil DBS_TYPE und DBS_LEN "so" unter PostgreSQL nicht existieren.UliTs hat geschrieben:Probiere mal (ungetestet)Dann kannst Du auch mehrere Spalten extrahieren .Code: Alles auswählen
aName := array( len(aBdbstru) ) AEVAL(aDbstru,{|a,i| aName[i] := a[DBS_NAME]})
Code: Alles auswählen
// - Spalte eines 2-dimensionalen Arrays als 1-dimensionales Array zurueckgeben
// - Bsp.: a := { { "1A", "1B", "1C" }, { "2A", "2B", "2C" }, { "3A", "3B", "3C" } }
// ACol( a, 2 ) --> { "1B", "2B", "3B" }
FUNCTION ACol( aArray, nColPos )
LOCAL aCol := Array( Len( aArray ) )
DEFAULT nColPos TO 1
AEval( aArray, { |a,i| aCol[i] := a[nColPos] } )
RETURN aCol
war das überhaupt als Frage gedacht ?AUGE_OHR hat geschrieben:hi,
wenn ich mit DBSTRUC() ein Array habe wie ziehe ich mir nur die Spalte z.b. DBS_NAME raus ?Code: Alles auswählen
aCopy := AEVAL(aDbstru,{|a,i| a := a[DBS_NAME],,,.T.})
zunächst war es ja eine Frage ... als ich eine Lösung gefunden hatte hat ich das Thema auf [erledigt] gesetzt.brandelh hat geschrieben:war das überhaupt als Frage gedacht ?
Wenn aDbstru nicht mehr gebraucht wird, könnte das als Lösung gedacht gewesen sein.
Besser 2 Antworten posten. Dann kann man es leichter verstehenAUGE_OHR hat geschrieben:zunächst war es ja eine Frage ... als ich eine Lösung gefunden hatte hat ich das Thema auf [erledigt] gesetzt.
damit nun nicht die Frage kommt : ja "wie" denn hab ich meine verwendetet Lösung gepostet.
Warum es sich einfach machen, wenn es mit AClone() auch eine komplizierte, speicherintensivere und langsamere Lösung gibt?AUGE_OHR hat geschrieben:Uli's Hinweis war richtig denn ich hätte 2 statt 1 Zeilen veröffentlichen sollen wo ein ACLONE() "irgendwo" davor schon vorhanden war.
weil ACLONE() in meinen Konzept schon vorher vorhanden war und das Problem hinterher entstand.UliTs hat geschrieben:Warum es sich einfach machen, wenn es mit AClone() auch eine komplizierte, speicherintensivere und langsamere Lösung gibt?AUGE_OHR hat geschrieben:Uli's Hinweis war richtig denn ich hätte 2 statt 1 Zeilen veröffentlichen sollen wo ein ACLONE() "irgendwo" davor schon vorhanden war.
Code: Alles auswählen
SELECT (::cAlias )
IF NET_LOCK(nRec)
iMax := LEN( ::aEditKopie )
FOR i := 1 TO iMax
IF ::aOriginal[i] <> ::aEditKopie[i]
FieldPut( i , ::aEditKopie[i] )
ENDIF
NEXT
ENDIF