Foxtable(狐表)用户栏目专家坐堂 → 分享:动态新建外部数据表并设置主键(新增SQL表)


  共有29704人关注过本帖树形打印复制链接

主题:分享:动态新建外部数据表并设置主键(新增SQL表)

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
分享:动态新建外部数据表并设置主键(新增SQL表)  发帖心情 Post By:2010/1/29 16:27:00 [显示全部帖子]

可根据另一个表所列出的表名,列名及列类型,在外部数据源中新建一个带有主键的数据表,目前是新建的是ACCESS数据表。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态生成外部access数据表.rar


这是一个可以生成SQL和ACC两种外部表的示例,如果目标数据库中已有同名表,可以进行选择,删除后新建或是改名,建表后,在表中新增一行,还可以动态加载到窗口表中查看并编辑
目前的SQL数据库给大家测试用,请不要删除原库中的文件,谢谢!此库开放一周,下周日关闭.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态生成外部数据表.table

[此贴子已经被作者于2010-1-30 16:23:37编辑过]

[本帖被加为精华]
 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/29 18:39:00 [显示全部帖子]

重新设置链接


 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/29 19:16:00 [显示全部帖子]

以下是引用wcs在2010-1-29 18:40:00的发言:

连一个空ACCESS数据库吧。

数据源可以是空的,也可以有其它的表,生成的新表是空表,由于生成的表是有主键的,所以可以动态加载到狐表程序中
[此贴子已经被作者于2010-1-29 19:16:38编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/30 11:11:00 [显示全部帖子]

以下是引用czy在2010-1-30 0:16:00的发言:

Tables("项目总表").Filter = "[表名] = '" & e.Form.Controls("ComboBox1").Value & "'"
Dim s,s1 As String
Dim scm as New SQLCommand
scm.ConnectionName  = "xc"
Dim t as Table = Tables("项目总表")
s = e.Form.Controls("ComboBox1").Value
if GetTableNamesFromConnection("xc").Contains(s)
    MessageBox.Show(s & " 表已经存在,不能创建!")
    Return
End If
For Each r as Row in t.Rows
    s1 = s1 & "["& r("列名") &"] " & "  " & r("列类") & "," & Chr(13) & Chr(10)
Next
scm.CommandText = "CREATE TABLE " & s & Chr(13) & Chr(10)
scm.CommandText = scm.CommandText & "(" & s1 & "PRIMARY KEY ([" & Tables("项目总表")(0,"列名") & "]))"
MessageBox.Show(scm.CommandText)
scm.ExecuteNonQuery

[此贴子已经被作者于2010-1-30 1:24:56编辑过]

好!谢谢曹版!


 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/30 16:27:00 [显示全部帖子]


    新增了一个可以生成SQL和ACC两种外部表的示例,如果目标数据库中已有同名表,可以进行选择,删除后新建或是改名,建表后,在表中新增一行,还可以动态加载到窗口表中查看并编辑
目前的SQL数据库给大家测试用,请不要删除原库中的文件,谢谢!此库开放一周,下周日关闭.
    文件已上传到一楼,其中有些代码是根据R版和C版代码改编而成的,在此先感谢R版和C版

欢迎大家测试并提出意见和建议。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/30 23:31:00 [显示全部帖子]

1  复制新的数据表并做连接与操作其独立的数据的问题,可以做 一个授权表,给用户相应的权限;
2   审核的问题也可以在某表中加一列审核列,此列只有上级才可以编辑,如当此列显示“已审核”后,就将此行的内容加入总库

 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/31 12:33:00 [显示全部帖子]

1  这问题我也发现了,正在想办法
2  可以删除插入行的代码,或改成其它的列名称及列值,也可以做个判断,这个判断应该不难,我在这儿做一个插入行的代码,是因为我做好数据表后需要导入到狐表中,结果我发现,如果是空表,就无法导入,所以加了一行,如果你增加表后不需要导入,就不必新增行了
3  其实无所谓用什么做主键,当然,如果你非要用_identify 做主键也可以,将我的ID改成 _identify 就可以,不过,这个 _identify 在窗口表中是不会显示的
4   我对初始化的理解是,数据表都有,只是没有任何数据,并不是没有数据表,我之所以搞这么个新增表,是做通用人事工资程序的需要,我想做通用程序可能都需要给客户新增任何表的机会吧
5  列类型的对比,帮助上贺老师做了,只是没有针对SQL语句的英文名称,有时间我看看做一个

 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/1/31 13:28:00 [显示全部帖子]

第一个问题我有办法解决了,字符型改成这样就可以
Text(32),32是字符数,可以根据自己的需要改数字,如需64,就写成:Text(64)


 回到顶部
美女呀,离线,留言给我吧!
yangming
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/4/9 10:21:00 [显示全部帖子]

1。如是ACC数据源,你可以随着发布后的项目文件走,帮助中有数据源的相关示例。而SQL就不存在这样的问题了
2。项目发布后,新建的表中的列,需要你自己设置,比如,新建表有几列,每列的名称及列类型,而在原有表中新建列,那就不是此贴的内容了,请看SQL语句中的新增列的相关章节了


 回到顶部