ich habe ein Problem mit dem VIA in DbUseArea() gemäss der Beschreibung von Alaska ...
wenn ich keine externe DBESYS verwende sagt DbeSetDefault() -> "DBFNTX", oderDbUseArea( [<lNewArea>] , ;
[<cDBE>|<oSession>] , ;
<cFileName> , ;
[<cAlias>] , ;
[<lShared>] , ;
[<lReadonly>] ) --> NIL
<cDBE>
Mit <cDBE> kann optional die Database-Engine (DBE) bestimmt werden, die die Dateien in der gewünschten Workarea verwalten soll. Es ist eine Zeichenkette, die den Namen der DBE enthält. Falls <cDBE> nicht angegeben ist, wird die DBE verwendet, die durch DbeSetDefault() als Standard-DBE definiert worden ist.
in einer externe DBESYS hätte ich diese DbeBuild(), oder
Code: Alles auswählen
IF !DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
IF !DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
Code: Alles auswählen
DbeSetDefault("DBFNTX")
DbeSetDefault("FOXCDX")
Code: Alles auswählen
IF cDBE = "FOXDBE"
USE &(cDbf) SHARED VIA "FOXCDX"
ELSE
USE &(cDbf) SHARED VIA "DBFNTX"
ENDIF
SET INDEX TO &(cCDX)
Code: Alles auswählen
IF cDBE = "FOXDBE"
dbUseArea( .F., "FOXCDX", (cDbf), , iif(.T. .or. .F., !.F., NIL), .F.)
ELSE
dbUseArea( .F., "DBFNTX", (cDbf), , iif(.T. .or. .F., !.F., NIL), .F.)
ENDIF
ordListClear() ;ordListAdd( (cCDX) )
wie auch im Beispiel c:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\DBBROWSE.prgUSE [ <cFileName> ;
...
[ VIA <cDbeName> | (<oSession>) ] ;
DbUseArea( [<lNewArea>] , ;
...
[<cDBE>|<oSession>] , ;
wird der DBE "Name" angegeben ...
Code: Alles auswählen
bError := ErrorBlock( {|oErr| Break( oErr ) } )
cDBE := "DBFDBE" // falsch ? müsste DBFNTX sein ?
FOR i:=1 TO 2
BEGIN SEQUENCE
DbUseArea( .T., cDBE, name )
RECOVER
IF i== 1
cDBE := "FOXDBE" // falsch ? müsste FOXCDX sein ?
LOOP
ENDIF
ENDSEQUENCE
EXIT
NEXT
ErrorBlock( bError )
IF cDBE = "FOXDBE"
SET INDEX TO &(cCDX) // <- hier knallt er
ENDIF
mir ist das bislang nicht aufgefallen weil ich USE statt DbUseArea() wie das Alaska Beispiel verwende.oError:args :
-> VALTYPE: C VALUE: d:\ALASKA\WMP\WM9MARK.CDX
oError:canDefault : N
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Operation wird durch DBE nicht unterstützt
oError:filename :
oError:genCode : 58
oError:operation : OrdListAdd
oError:osCode : 0
oError:severity : 2
oError:subCode : 8015
oError:subSystem : BASE
oError:thread : 1
oError:tries : 2
aber wenn das Beispiel nicht funktioniert ist auch die Beschreibung von Alaska falsch (!), oder
p.s. natürlich habe c:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\DBBROWSE.prg erweitert um DBESYS.