-
-
Notifications
You must be signed in to change notification settings - Fork 45
Description
The following code gives a runtime error in X# - in VO it does not.
`
function Start() as void
local aStruct as array
local oDBServer as DBServer
local nI as dword
local cFileName as string
aStruct := {}
AAdd( aStruct, { "Field1", "N", 10, 0 } )
AAdd( aStruct, { "Field2", "C", 10, 0 } )
cFileName := "C:\temp\test.dbf"
DbCreate( cFileName, aStruct, "DBFCDX", true, "TEST",, false )
TEST->DbSetOrderCondition( ,,,,,,,,,,true )
TEST->DbCreateOrder( "ORDER1",, "Str(FIELD1,8)", {|| Str( _FIELD->FIELD1,8 ) }, false )
TEST->DbCreateOrder( "ORDER2",, "Upper(FIELD2)", {|| Upper( _FIELD->FIELD2 ) }, false )
TEST->DbCloseArea()
DebOut( "Created" )
oDBServer := dbServer{ cFileName, true, false, "DBFCDX" }
for nI := 1 upto 10
oDBServer:Append()
oDBServer:FieldPut( "Field1", nI )
oDBServer:FieldPut( "Field2", NTrim( nI ) )
oDBServer:Commit()
oDBServer:Unlock()
next
oDBServer:Close()
oDBServer := dbServer{ cFileName, true, false, "DBFCDX" }
oDBServer:SetOrder( "ORDER1" )
oDBServer:GoBottom()
System.Console.WriteLine( NTrim( oDBServer:FieldGet( #Field1 ) ) )
oDBServer:Skip( 1 )
System.Console.WriteLine( NTrim( oDBServer:FieldGet( #Field1 ) ) )
oDBServer:Skip( 0 )
System.Console.WriteLine( NTrim( oDBServer:FieldGet( #Field1 ) ) )
oDBServer:Close()
return
`