以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教 SQL数据源 自动建表加载问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80140)

--  作者:zwjfx
--  发布时间:2016/1/17 9:09:00
--  [求助]请教 SQL数据源 自动建表加载问题
软件使用SQL数据源
软件开发完给客户,应该运行软件,在SQL里面建表

BeforeConnectOuterDataSource里面没窗口 不能建表

如果加载完成再建表后加入表,表属性没法处理

现在想到的是,先建内部表加载,然后SQL建表后卸载内部表,再加载SQL数据源的表

请教:除了这个方法,还有其他方法可以操作么


--  作者:大红袍
--  发布时间:2016/1/17 10:31:00
--  

1、你项目做好的时候,就应该把所有的表建好了。你把数据库和项目一起给客户不就行了?

 

2、没有其他方法。


--  作者:zwjfx
--  发布时间:2016/1/17 14:50:00
--  
这个不是的,access的数据源可以一起给客户,SQL需要先安装数据库,再建表的
--  作者:大红袍
--  发布时间:2016/1/17 20:17:00
--  

1、安装数据库,肯定用户自己安装;

 

2、sqlserver,可以直接附加数据库或者备份还原数据库的啊。


--  作者:zwjfx
--  发布时间:2016/1/18 21:50:00
--  
我们现在想做的是,这个附加的过程是由软件来完成的,不是客户自己手动附加数据库
--  作者:大红袍
--  发布时间:2016/1/18 21:55:00
--  

附加,还原,用sql语句啊,比如代码

 

附加,还原,用sql语句啊,比如代码

 

Try
    If Connections.Contains("test") Then Connections.Delete("test")
    Dim cmd1 As New SQLCommand
    Connections.Add("test", "Provider=SQLOLEDB.1;Password=hailun.;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=voyo")
    cmd1.ConnectionName = "test"
    Connections("test").BeginTransaction() \'开始事务
    cmd1.CommandText = "use master;EXEC sp_attach_db @dbname =\'测试\',@filename1 =\'"& ProjectPath & "ADMIN\\测试.mdf\',@filename2 =\'"& ProjectPath & "ADMIN\\测试_log.ldf\'"
    cmd1.ExecuteNonQuery()
    Connections("test").Commit \'提交事务,所有操作生效
    If Connections.Contains("test") Then Connections.Delete("test")
Catch ex As Exception \'如果出错
    msgbox(ex.message)
End Try
   


   

[此贴子已经被作者于2016/1/18 21:54:45编辑过]

--  作者:大红袍
--  发布时间:2016/1/18 21:55:00
--  
 你执行bak的还原也可以啊。
--  作者:zwjfx
--  发布时间:2016/1/18 22:15:00
--  
我想的是,在加载外部数据源之前,让用户输入数据库的名称密码,然后附加数据库,可这时候窗口没有生成,用户没法输入
--  作者:大红袍
--  发布时间:2016/1/18 22:35:00
--  
 那就打开两次项目就行的,第一次打开的时候不连接数据库,出现窗口,设置好,重新打开项目,这次附加数据库和连接数据就行啊。
--  作者:zwjfx
--  发布时间:2016/1/19 11:33:00
--  
再请教一下,不连接数据库出窗口要怎么操作呢
是在BeforeConnectOuterDataSource里面设置么?
应该怎么写呢