以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教个填充的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11778)

--  作者:狐友
--  发布时间:2011/8/11 13:46:00
--  请教个填充的问题

Dim f As New Filler
f.SourceTable = DataTables("生产入库")
f.SourceCols = "规格,批号"
f.DataTable = DataTables("入库")
f.DataCols = "规格,批号"
f.Filter = "[是否调拨] =\'true\'"
f.Fill()
DataTables("生产入库").DeleteFor("[是否调拨] =\'true\'")

 

请教下个这个代码不执行,原来的项目文件是调用的外部数据库

新建个文件,用内部表单独测试可以运行,

请教下,谢谢


--  作者:yangming
--  发布时间:2011/8/11 14:00:00
--  
这个文件在内部表中应该可以运行的,你删除最后一行的代码,先试试前面的填充代码
--  作者:狐友
--  发布时间:2011/8/11 14:03:00
--  

内部表里是可以运行的,

关键是接数据库的时候就不行了,


--  作者:yangming
--  发布时间:2011/8/11 14:17:00
--  
先加载后再用这个“Filler”进行填充
--  作者:狐狸爸爸
--  发布时间:2011/8/11 14:51:00
--  
这段代码,是不区分内部表和外部表的,除非你的代码有误。
--  作者:hhbb
--  发布时间:2011/8/11 14:59:00
--  

也许是这个原因:


SQL Server的逻辑列

我曾经使用下面的SQL语句设置逻辑列的值:

UPDATE {表A} SET 结账 = False

在使用内部表和Access数据源的时候,上述SQL语句均能正常执行,当转为SQl Server的时候,却出现了错误提示。

这是因为SQL Server用0表示False,1表示True,所以上述语句应该改为:

UPDATE {表A} SET 结账 = 0

同样在使用条件表达式的时候,也要做适当的调整调整,例如:

Select * From {表A} Where 结账 = 1

表示获得已经结账的行。

需要注意的是,SQL Server这种特性只有在使用SQL语句的时候才存在,数据一旦加载到Foxtable,不管数据来自何种数据源,逻辑列的值都是False和True,不再是0和1。


--  作者:狐狸爸爸
--  发布时间:2011/8/11 15:05:00
--  

呵呵,有可能,如果这样,建议楼主看看:

 

http://www.foxtable.com/help/topics/2343.htm