ich habe hier eine altes PDF von 2001 ( ! ) gefunden wo Frank++ von DAC gesprochen hat.
wenn ich nun das Beispiel DACtest.prg mit -w compiliere meckert er
die Konstanten fehlen mir ?DACTEST.PRG(156:0): warning XBT0102: Ambiguous variable reference DAC_FIELD_VIEWCLASS
DACTEST.PRG(157:0): warning XBT0102: Ambiguous variable reference DAC_FIELD_EDITCLASS
DACTEST.PRG(158:0): warning XBT0102: Ambiguous variable reference DAC_FIELD_VALIDATIONRULE
DACTEST.PRG(159:0): warning XBT0102: Ambiguous variable reference DAC_FIELD_MESSAGE
Code: Alles auswählen
#pragma library( "ADAC20B.LIB" )
#include "inkey.ch"
#include "dac.ch"
#include "dmlb.ch"
FUNCTION rowTest()
LOCAL lSuccess := .T.
LOCAL oRow, oF
LOCAL n
? "create db..."
DbCreate("TEST" , { {"NAME" , "C" , 10 , 0 },;
{"AGE" , "N" , 5 , 0 }})
USE TEST EXCLUSIVE
? "create dacRow"
oRow := dacRow():New({"NAME","AGE"})
IF !(ValType(oRow)=="O" .AND. oRow:isDerivedFrom("DACROW"))
lSuccess := .F.
ENDIF
? "retrieve data from row"
n := oRow:fieldCount()
IF(n!=Len(DbStruct()))
lSuccess := .F.
ENDIF
? "Empty-Row-Data:"
? oRow:getRow()
DbAppend()
FIELD->NAME := "TEST1"
FIELD->AGE := 10
DbAppend()
FIELD->NAME := "TEST2"
FIELD->AGE := 20
DbGotop()
? "Two-Record-Data:"
DO WHILE !EOF()
? oRow:getRow()
DbSkip(1)
ENDDO
? "change-row-data"
DbGoto(2)
oRow:putRow({"ROW2",300})
? oRow:getRow()
DbGoTop()
? "Default-Row:"
? oRow:getDefaultRow()
? "Field-Level-Access:"
? oRow:putField(1,"TEST1")
? oRow:putField("AGE",40)
? oRow:getField(1)
? oRow:getField("AGE")
? oRow:getField("NAME")
? "FieldList NAME:"
? oRow:fieldList(DAC_NAME)
? "FieldList OBJECT:"
n := oRow:fieldList(DAC_OBJECT)
AEval(n,{|o|QOut(o:name)})
? "FieldInfo:"
? oRow:fieldInfo(DAC_FIELD_NAME)
? oRow:fieldInfo(DAC_FIELD_VALTYPE)
? oRow:fieldInfo(DAC_FIELD_TYPE)
? oRow:fieldInfo(DAC_FIELD_NATIVETYPE)
? oRow:fieldInfo(DAC_FIELD_LENGTH)
? oRow:fieldInfo(DAC_FIELD_DECIMALS)
? oRow:fieldInfo(DAC_FIELD_NULLABLE)
? oRow:fieldInfo(DAC_FIELD_PICTURE)
? oRow:fieldInfo(DAC_FIELD_CAPTION)
? oRow:fieldInfo(DAC_FIELD_VIEWCLASS)
? oRow:fieldInfo(DAC_FIELD_EDITCLASS)
? oRow:fieldInfo(DAC_FIELD_VALIDATIONRULE)
? oRow:fieldInfo(DAC_FIELD_MESSAGE)
? oRow:fieldInfo(DAC_FIELD_DEFAULT)
? oRow:fieldInfo(DAC_FIELD_DESCRIPTION)
oF := oRow:queryField("NAME")
? oF:name
oF:setInfo(DAC_FIELD_MESSAGE,"Test message...")
? oF:setInfo(DAC_FIELD_MESSAGE)
? "DACVersion:",oF:dacVersion()
? "PERSISTENCY:",oF:isPersistent(),"ObjVer:",oF:objVersion()
USE
RETURN(lSuccess)