以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 内部表转换为外部表的经典问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=14213) |
-- 作者:ywlin521 -- 发布时间:2011/11/12 14:30:00 -- 内部表转换为外部表的经典问题? 内部表转换为SQL SERVER 2000的时候,内部表的表达式列是不是就不出现在SQL的表列中呢?ACCESS是这种情况。 顺便再问下,如何用代码增加外部数据源的表?给个具体的代码吧,呵呵,谢谢! |
-- 作者:lihe60 -- 发布时间:2011/11/12 15:04:00 -- 动态修改表结构 ADOXBuilder用于动态创建表和列。 增加列 在命令窗口执行下面的代码: Dim Builder As New ADOXBuilderBuilder.Open() \'打开ADOXBuilder With Builder.Tables("表A") .AddColumn("日期" ,ADOXType.DateTime) \'增加日期型列 .AddColumn("产品" ,ADOXType.String, 12) \'增加字符型列,长度指定为12 .AddColumn("客户" ,ADOXType.String, 20) \'增加字符列,长度为20 .AddColumn("数量" ,ADOXType.Integer) \'增加整数型列 .AddColumn("备注" ,ADOXType.Text) \'增加备注列 End With Builder.Close() \'关闭ADOXBuilder 执行后重新打开项目,会发现表A已经增加了上述列。 ADOXType是一个枚举,用于指定列的类型,其可选值包括: String: 字符型 删除列 在命令窗口执行下面的代码: Dim Builder As New ADOXBuilderBuilder.Open() \'打开ADOXBuilder With Builder.Tables("表A") .DeleteColumn("日期") .DeleteColumn("产品") End With Builder.Close() \'关闭ADOXBuilder 执行后重新打开项目,会发现表A的日期和产品列已经被删除。 重命名列 在命令窗口执行下面的代码: Dim Builder As New ADOXBuilder 然后重新打开项目,表A的"第一列"已经被重命名为"姓名"。 增加表 在命令窗口执行下面的代码: 执行后重新打开项目,会发现多了一个订单表。 删除表 执行下面的代码,可以删除表A和表B: Dim Builder As New ADOXBuilderBuilder.Open() With Builder .DeleteTable("表A") .DeleteTable("表B") End With Builder.Close() 执行上述代码后,同样应该重新打开项目。 重命名表 在命令窗口执行下面的代码,可以将"表A"重命名为"订单": Dim Builder As New ADOXBuilder 使用外部数据源 前面的代码都是针对内部数据源的,如果要为外部数据源动态创建表和列,只需在定义ADOXBuilder的时候,指定数据源名称即可: Dim Builder As New ADOXBuilder("数据源名称") 例如在名为nwnd的外部数据源中创建一个订单表: Dim Builder As New ADOXBuilder("nwnd") \'要指定数据源名称 为外部表增加系统列 使用前述代码添加的表,默认会添加主键列“_Identify”。 AddTable(Table, AddLockColumn, AddSortColumn) Table: 要增加的表 例如在名为nwnd的外部数据源中创建一个订单表,且为订单表添加“_Locked”和"_SortKey"两列: Dim Builder As New ADOXBuilder("nwnd") \'要指定数据源名称 重新打开项目的代码 前面已经提到,动态创建的表和列之后,都必须重新打开项目。 Syscmd.Project.Open(ProjectFile) |
-- 作者:狐狸爸爸 -- 发布时间:2011/11/12 16:51:00 -- 表达式列是打开项目后,自动生成的,不存在与任何数据源中,包括内部表中。 重定向后,重新打开项目,表达式列依然会自动生成。 |
-- 作者:ywlin521 -- 发布时间:2011/11/13 9:42:00 -- 重启项目后,对于内部数据表,是可以生效,但对于外部数据源,如ACCESS,还要进行增加数据表操作,才能最后看的见。 我现在设计多工资套帐的人事工资管理部分,一种工资结构表(即一个工资套帐)对应一个数据表,是不是还有其他方便的方法呢? |
-- 作者:狐狸爸爸 -- 发布时间:2011/11/13 9:57:00 -- 用这个方法,不存在你说的问题: http://www.foxtable.com/help/topics/2297.htm
|