我遇到了问题,我有一个名为" gridbasica"和我这样做:
Thisform.GridBase.RecordSource = "sgviemp"
sgviemp是通过使用命令SQLEXEC执行对SQLserver的选择而生成的游标。
当我想修改注册表时,我会转到另一个表单并在那里进行更新。所以,当我回到带网格的表格时,网格不再是网格,是一个大的白色矩形。
阅读某人说:删除记录源并再次将其删除。
Thisform.GridBase.RecordSource = ""
*--i do my sqlexe here
Thisform.GridBase.RecordSource = "sgviemp"
我这样做并且它有效,但是,当我再次单击按钮修改时,cursos会更新,但修改表单不会像第一次那样加载字段。
有人可以帮我解决这个问题吗?
提前感谢。
---------------编辑------------------
我按照建议做了这个:
lnselect = select(0)
n = SQLEXEC(thisform.conexion,"select emp_ccodigo as Codigo, emp_cnombre as 'Nombre o Razon Social', emp_cnumrif as 'R.I.F' from sgviempr","sgviemp1")
SET ECHO on
SUSPEND
SELECT sgviemp
ZAP IN sgviemp
*-- browse *--zaps correctly
*-- SELECT sgviemp1
*-- browse *-- sgviemp1 full
APPEND FROM dbf( 'sgviemp1' )
USE IN sgviemp1
*-- BROWSE *--shows sgviemp1 empty
*-- SELECT sgviemp
*-- browse *--shows sgviemp empty too
并且它不会在网格中加载任何内容
答案 0 :(得分:3)
不要破坏和重新创建网格所基于的光标。相反,使用“安全选择”,您可以提前创建光标,当您需要重新填充它时,您可以对其进行ZAP并附加新数据:
http://fox.wikis.com/wc.dll?Wiki~GridSafeSelect~Wiki
玛
答案 1 :(得分:0)
此处发现错误:
n = SQLEXEC(thisform.conexion,"select emp_ccodigo as Codigo, emp_cnombre as 'Nombre o Razon Social', emp_cnumrif as 'R.I.F' from sgviempr","sgviemp1")
在查询中,网格源名为emp_ccodigo,emp_cnombre和emp_cnumrif NOT codigo,Nombre o Razon Social或R.I.F,因此需要删除“as”语句。所以它看起来像这样:
n = SQLEXEC(thisform.conexion,"select emp_ccodigo, emp_cnombre, emp_cnumrif from sgviempr","sgviemp1")