Found this workaround from Selwyn here
From my IW testing:
'Result before opening the Intake form:
?session_enum("#N~C~D~L~S;") - I added the format chars so I could read the string
= #1~databasesession~<NUL>.DBF~xdialog 2
evalcontextadd 1
~Open;
#2~window~c:\a5\ccu170511\dummy.dbf~xdialog 6
othersession 1 'this seems to be the culprit
~Open;
#3~window~c:\a5\ccu170511\<NUL>.DBF~xdialog 10
panelloader 1
xdialoglock 1 'or maybe it is this since an xdialog is open
~Open;
'Result after opening and closing the form:
?session_enum("#N~C~D~L~S;")
= #1~databasesession~<NUL>.DBF~xdialog 2
evalcontextadd 1
~Open;
#2~window~c:\a5\ccu170511\dummy.dbf~xdialog 4
othersession 1
~Open;
#3~window~c:\a5\ccu170511\<NUL>.DBF~xdialog 10
panelloader 1
xdialoglock 1
~Open;
#4~window~c:\a5\ccu170511\intake.set~xdialog 2
~Closed;
Notice that Session 4 above is reported as closed, but when I check open tables, all the tables are listed and locked and *session_destroy(4) does nothing to fix it. Nor does it destroy sessions 2 or 3.
In the Xbasic Explorer Session 2 (XD that calls the form) has a variable a_tbl_list that contains a comma delimited list of all the tables in the Intake.set. The other sessions do not have that var.
This set has 13 tables, 4 child tables are 1:N and 4 grandchild tables are 1:N - all without complicated links or filters. The form is not filtered either, and all the indices are fine.
Any ideas on where else to look for a fix?
From my IW testing:
'Result before opening the Intake form:
?session_enum("#N~C~D~L~S;") - I added the format chars so I could read the string
= #1~databasesession~<NUL>.DBF~xdialog 2
evalcontextadd 1
~Open;
#2~window~c:\a5\ccu170511\dummy.dbf~xdialog 6
othersession 1 'this seems to be the culprit
~Open;
#3~window~c:\a5\ccu170511\<NUL>.DBF~xdialog 10
panelloader 1
xdialoglock 1 'or maybe it is this since an xdialog is open
~Open;
'Result after opening and closing the form:
?session_enum("#N~C~D~L~S;")
= #1~databasesession~<NUL>.DBF~xdialog 2
evalcontextadd 1
~Open;
#2~window~c:\a5\ccu170511\dummy.dbf~xdialog 4
othersession 1
~Open;
#3~window~c:\a5\ccu170511\<NUL>.DBF~xdialog 10
panelloader 1
xdialoglock 1
~Open;
#4~window~c:\a5\ccu170511\intake.set~xdialog 2
~Closed;
Notice that Session 4 above is reported as closed, but when I check open tables, all the tables are listed and locked and *session_destroy(4) does nothing to fix it. Nor does it destroy sessions 2 or 3.
In the Xbasic Explorer Session 2 (XD that calls the form) has a variable a_tbl_list that contains a comma delimited list of all the tables in the Intake.set. The other sessions do not have that var.
This set has 13 tables, 4 child tables are 1:N and 4 grandchild tables are 1:N - all without complicated links or filters. The form is not filtered either, and all the indices are fine.
Any ideas on where else to look for a fix?
Comment