osql调用外部*.sql文件再远程数据库上创建表失败

hell8088 2008-02-19 04:20:06
小弟在制作一个数据库自动生成的部分:
代码如下:
/// <summary>
/// 自动调用外部的SQL文件
/// </summary>
/// <param name="dbServer">连接服务器</param>
/// <param name="uid">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="usedDatabase">被使用的数据库</param>
/// <param name="FilePath">.SQL文件路径</param>
/// <returns>Boolen?True:false</returns>
public bool CreateByFile(string dbServer,string uid,string pwd,string usedDatabase,string FilePath)
{
string createStr = " -U " + uid + " -P " + pwd + " -d " + usedDatabase + " -s " + dbServer + " -i " + FilePath;
try
{
//下面代码可以调用任意的.SQL文件并实现
System.Diagnostics.Process pr = new System.Diagnostics.Process();
pr.StartInfo.FileName = "osql.exe";//调用osql工具
pr.StartInfo.Arguments = createStr;//加入创建字符串
pr.StartInfo.UseShellExecute = false;
pr.StartInfo.RedirectStandardOutput = true; //重定向输出
pr.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//隐藏输出窗口
pr.Start();
System.IO.StreamReader sr = pr.StandardOutput;
sr.ReadToEnd();
pr.WaitForExit();
pr.Close();
return true;
}
catch (Exception err)
{
err.Message.ToString();
return false;
}
}


调用部分是这样写的:
if (!IsPostBack)
{
//调用表生成
CreateByFileAsSql cb = new CreateByFileAsSql();
string dbServer = "192.168.0.221";
string path = "F:\\c.sql";
if (cb.CreateByFile(dbServer, "sa", "sa", "wjhtest", path))
{
Response.Write("aaa");
}
}


其中dbServer是指定的服务器,PATH是我要调用的.SQL文件的路径,wjhtest是个新建立的空数据库
C.SQL文件里写的是创建表和存储过程的语句.

问题:所有参数调用本地数据库时,创建表和存储过程都没问题(就是把参数设置为dbServer:127.0.0.1)
而我在对远程数据库操作时,库我都建立好了,但总是不成功.

我跟踪代码发现了一个这样的错误:"用户 'sa' 登录失败。\r\n[SQL Native Client]共享内存提供程序: 系统无法打开 文件。\r\n[SQL Native Client]通讯链接失败\r\n无法打开登录 'wjhtest' 中请求的数据库。登录失败。\r\n"

这是怎么回事,osql工具受访问权限控制吗?怎样配置才能创建成功
哪位高手指点下怎么在程序中自动创建数据库表(要远程的,本地的我可以实现)
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
海云飞 2008-10-17
  • 打赏
  • 举报
回复
请问在不同域中可以创建么?
如果可以 string path = "F:\\c.sql";
路径怎么写??
zxyong1980 2008-04-08
  • 打赏
  • 举报
回复
楼主问题解决了吗?
昨天我在做一个VS2008下的安装包时,用的数据库是Sql Server2005也出现类似楼主的问题
可不可以公布一下解决办法?
hell8088 2008-03-27
  • 打赏
  • 举报
回复
多谢龟大哥,我发了很久沉下去了 原本以为没人回了,虽然我还是不太明白,我感觉也是权限但没弄明白 但还是谢谢
dawugui 2008-02-26
  • 打赏
  • 举报
回复
没权限吧?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧