SQL SERVER2000 设置ADO客户端连接的ConnectionString问题(客户端通过连接相应数据库文件 实现数据导入 导出和保存)(57分)

  • 主题发起人 主题发起人 baby2321
  • 开始时间 开始时间
B

baby2321

Unregistered / Unconfirmed
GUEST, unregistred user!
各位 新年好

我现在正在为 数据库客户端 连接发愁 我的数据库是SQL SERVER2000 连接方式是ADO 其ConnectionString是 Provider=SQLOLEDB.1;
Integrated Security=SSPI;
Persist Security Info=False;
Initial Catalog=book
采用 Windows NT 集成安全设置 目前我在服务器端连接是正常的 在客户端连接数据 我想应该是调整ConnectionString

我把SQL数据库 转化成一个文件形式 在发布的时候会打包进去 客户端通过连接相应数据库文件 实现数据导入 导出和保存

以下是我的数据库备份和恢复代码
procedure TForm1.Button1Click(Sender: TObject);// backup
begin
if savedialog1.Execute then
adocommand1.CommandText:='backup database book to disk='+chr(39)+SaveDialog1.FileName+chr(39)+' ';
adocommand1.Execute;
end;

procedure TForm1.Button2click(sender:TObject);// restore
begin
if opendialog1.Execute then
adocommand1.CommandText:='use master';
adocommand1.Execute;
adocommand1.CommandText:='restore database book from disk='+chr(39)+openDialog1.FileName+chr(39)+' ';
adocommand1.Execute;
end;
end.
以上的代码在服务器端执行是OK 的 但希望在客户端执行 于是我把代码改为

procedure TForm1.Button2click(sender:TObject);// restore
begin
if opendialog1.Execute then

begin
if ADOConnection1.Connected then
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source='+chr(39)+OpenDialog1.FileName+chr(39)+';Persist Security Info=False;User ID='''';Password='''' ';
ADOConnection1.Connected := True;

adocommand1.CommandText:='use master';
adocommand1.Execute;
adocommand1.CommandText:='restore database book from disk='+chr(39)+openDialog1.FileName+chr(39)+' ';
adocommand1.Execute;
end;
end;
end.

这样后 提示'[DBNETLIB][ConnectionOpen(ParseConnectParams()).]无效的连接'

我接触DELPHI时间不长 目前主要方向是在数据库 能否请各位帮我看一下 感激不尽

谢谢
 
Adoconnection1.Connectionstring:='....datasource='+服务器名(或IP)+'..'
我也是刚接触Delphi C/S数据库编程,以上你试试!
 
SQL SERVER2000好像不支持异地的备份和恢复,我试过也不成功。。。
 
看到http://www.delphibbs.com/delphibbs/dispq.asp?lid=3324595里
Project.ini的内容:
[Data]
DataSource=PCT
UserId=sa
PassWord=sql
DataBaseName=master
ConType=1
不知PCT什么意思
还有 Project.ini应该是事前建好的吗?
 
To qiaojiaxiu
datasource='+服务器名(或IP)+'.. ----------这里的IP是客户端的IP 还是某个固定的值?
 
利用adoconnection的commandtext来执行的命令是在adoconnection连接到的服务端执行的,所以你的方法是不行的。如果连接到服务端,那么在指定数据库文件的时候的路经就是服务端的路经,这样就找不到你的备份文件。如果你连接到客户端,首先客户端要安装并运行sql server.....简单问题复杂化了
 
to sung_001:
可是那 如何实现 在 客户端 通过连接相应数据库文件 实现数据导入 导出和保存呢?
 
ADOConnection1.ConnectionString如何设置?

~~
 
查了一些资料 了解到:
有两种连接 SQL Server 的方式
一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;
二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。

我这里应该是第二种 而 使用用于 SQL Server 的 OLE DB 提供者又有“使用 SQL Server 身份验证”和“使用 Windows 身份验证(信任连接)”

对于“使用 Windows 身份验证(信任连接)”
使用 Windows 身份验证(信任连接):
oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"Integrated Security=SSPI"

请问 这里"Data Source=myServerName;" 的 myServerName应该怎么写?

我的程序中的 ADO 是这样写的(这种方式仅我的电脑上运行OK):
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=book';
在别人电脑上运行时 提示“[DBNETLIB][ConnectionOpen(Connect()).]SQL Server 不存在或拒绝访问”
对于 我的ADOConnection1.ConnectionString 应该如何修改呢?个人感觉在别人电脑上运行时 应该是ADOConnection1.ConnectionString没有找到Data Source

大大指点 感激不尽
 
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=book'把地址加到里面

ConStr := 'Provider=SQLOLEDB.1;Password=' + E_PWD.Text
+ ';Persist Security Info=True;User ID=' + E_User.Text
+ ';Initial Catalog=' + E_DB.Text + ';Data Source=' + E_Server.Text;
ADOC_Main.ConnectionString := ConStr;
try
ADOC_Main.Open;
except
on E: Exception do
begin
MessageDlg('连接失败!' + E.Message, mtError, [mbOk], 0);
Exit;
end;
end;
 
你连接本机时用NT认证就可以了。当连接服务器的时候。就需要指定服务器的IP和密码了。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=SXD
 
datasource='+服务器名(或IP)+'.. ----------这里的IP是某个固定的值(也就是说:“是你要连接的服务器的IP”)
 
我一直是希望在程序发布时 把 数据库文件 一起打包进去 然后别人的电脑直接OPEN该文件打开该数据库里的数据 这种想法能否实现?很多朋友也提到可能涉及SQL客户端 但已经有无数的朋友指出 只需几个核心DLL就行 完全可以不装所谓的SQL客户端 最多最多装个MDAC即可
那么 在ADOConnection1.ConnectionString 的设置中 能否实现直接连接这个 数据库文件 实现数据导入?
TO:chengangsir
Data Source=' + E_Server.Text;//这里的E_Server.Text是一定要手工输入吗? 还是通过连接发布时打包进去的 数据库文件 可以避开??
TO:衣雪峰
通过连接发布时打包进去的 数据库文件 是不是一定要指定服务器的IP和密码?

谢谢各位 有你们真好
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部