VFP Grid + SQL server 2008 - 网格显示不正确

时间:2014-06-09 20:12:19

标签: sql-server database sql-server-2008 visual-foxpro

我遇到了问题,我有一个名为" 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

并且它不会在网格中加载任何内容

2 个答案:

答案 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")