以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  ADOXBuilder建立外部SQL表时,保留列_Locked不允许空值,会造成程序运行出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19046)

--  作者:kylin
--  发布时间:2012/4/25 19:59:00
--  ADOXBuilder建立外部SQL表时,保留列_Locked不允许空值,会造成程序运行出错
直接建表时,_Locked列,而在这里出错,个人以为此为Bug,请老六指点之!
--  作者:blackzhu
--  发布时间:2012/4/26 8:08:00
--  

不应该呀.

 

为外部表增加系统列

使用前述代码添加的表,默认会添加主键列“_Identify”。
如果是内部数据源,默认还会添加“_Locked”和"_SortKey"两列,前者用于保存行的锁定状态,后者用于开启插入行功能。
如果是外部数据表,默认不会添加“_Locked”和"_SortKey"两列,你可以使用AddTable方法的另一个语法,来决定是否为外部表增加这两列:

AddTable(Table, AddLockColumn, AddSortColumn)

Table:          要增加的表
AddLockColumn: 逻辑型,是否增加_Locked列
AddSortColumn: 逻辑型,是否增加_SortKey列

例如在名为nwnd的外部数据源中创建一个订单表,且为订单表添加“_Locked”和"_SortKey"两列:

Dim Builder As New ADOXBuilder("nwnd") \'要指定数据源名称
Dim
tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable(
"订单") \'创建表
With
tbl
    .AddColumn(
"日期" ,ADOXType.DateTime)
    .AddColumn(
"产品" ,ADOXType.String, 12)
    .AddColumn(
"客户" ,ADOXType.String, 20)
    .AddColumn(
"数量" ,ADOXType.Integer)
    .AddColumn(
"备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl, True, True)
\'增加表
Builder.Close()

 

 

  我用代码做过,没出任何问题.


--  作者:kylin
--  发布时间:2012/4/26 8:25:00
--  

blackzhu兄:

我这里切切实实是存在着问题,见QQ截图

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120426082328.png
图片点击可在新窗口打开查看

补充一下,我用的是SQL Server 2008


--  作者:狐狸爸爸
--  发布时间:2012/4/26 8:51:00
--  
问题收到,我会处理的。
--  作者:blackzhu
--  发布时间:2012/4/26 9:04:00
--  
哦,我做的是ACCESS,好像没有发现问题.