对李洪根在csdn的blog上的一篇关于数据库安装的一点个人看法。

原文地址:
http://dev.csdn.net/develop/article/27/27814.shtm

.NET平台下WEB应用程序的部署(安装数据库和自动配置)

原文是他是用osql 来执行,但如果web服务器上没有osql,则他又提供了另一种方法,见后面
--------------------
 '调用osql执行脚本

            Dim sqlProcess As New System.Diagnostics.Process

            sqlProcess.StartInfo.FileName = "osql.exe "

            sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", Me.Context.Parameters.Item("user"), Me.Context.Parameters.Item("pwd"), Me.Context.Parameters.Item("dbname"), Me.Context.Parameters.Item("targetdir"))

            sqlProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

            sqlProcess.Start()

            sqlProcess.WaitForExit()  '等待执行

            sqlProcess.Close()

------------------------------
           
另一种解决方法

 2004.5.14 13:51 lihonggen0 发表评论 

' -------------------------------------------------------
附:执行脚本还可以用以下方式:
            '利用shell执行osql
        Dim strSQL = String.Format("OSQL  -U {0} -P {1} -d {2} -i {3}db.sql", Me.Context.Parameters.Item("user"), Me.Context.Parameters.Item("pwd"), Me.Context.Parameters.Item("dbname"), Me.Context.Parameters.Item("targetdir"))
        Shell(strSQL, AppWinStyle.Hide)
            '利用ado.net执行osql
        Dim strSQL = String.Format("EXEC MASTER..XP_CMDSHELL 'OSQL  -U {0} -P {1} -d {2} -b -i {3}db.sql'", Me.Context.Parameters.Item("user"), Me.Context.Parameters.Item("pwd"), Me.Context.Parameters.Item("dbname"), Me.Context.Parameters.Item("targetdir"))
        ExecuteSql(connStr, Me.Context.Parameters.Item("dbname"), strSQL)
----------------------------------

但我不知道李大哥测试过没有,用ado.net来执行osql的时候,这时候所找的db.sql是在数据库服务器上来找,而db.sql是安在了web服务上,所以。。。。


我仔细查看了duwamish7的安装项目,发现在秘密。
秘密就是打包的时候把osql和bcp打到安装包里,然后在web服务上执行osql后,再将osql删掉。

另外,李大哥给得是vb.net语言的,我已经改为c#的拉,如果谁要的话,可以说一声:)



posted on 2004-09-21 08:46  十一月四日风雨大作  阅读(2228)  评论(17编辑  收藏  举报

导航