如何搜索局域网内装有SQL Server的计算机并将其计算机名和IP地址列表出来?
望高手多帮忙!多谢! 问题点数:50、回复次数:5Top
1 楼hongliqiu(在火中)回复于 2003-11-03 11:18:32 得分 18
1、参看:CSDN_文档中心_如何获取局域网中的所有 SQL Server 服务器
2、回复人: 52vc(方旭) 的回答
ComboBox1->Items->Clear();
Variant <span style="background-color: #00FF00">SQL</span>Server;
Variant ServerList;
int i,nServers;
String sRetValue;
<span style="background-color: #00FF00">SQL</span>Server =CreateOleObject("<span style="background-color: #00FF00">SQL</span>DMO.Application");
ServerList=<span style="background-color: #00FF00">SQL</span>Server.OleFunction("ListAvailable<span style="background-color: #00FF00">SQL</span>Servers");
nServers=ServerList.OlePropertyGet("Count");
for (int i=1; i<nServers;i++ )
{
if(AnsiString(ServerList.OleFunction("Item", i))!="(local)")
ComboBox1->Items->Add(ServerList.OleFunction("Item", i) );
}
ComboBox1->ItemIndex=0;
<span style="background-color: #00FF00">SQL</span>Server=NULL;
ServerList=NULL;
上面为寻找所有<span style="background-color: #00FFFF">服务器</span>
以下为测试边通性
AnsiString cnstr="Provider=<span style="background-color: #00FF00">SQL</span>OLEDB.1; \
Password=你的密码;Persist Security Info=True; \
User ID=你的用户;Initial Catalog=master;Data Source='"+ComboBox1->Text.Trim()+"';\
Use Procedure for Prepare=1;Auto Translate=True; \
Packet Size=4096;Workstation ID=HE; \
Use Encryption for Data=False; \
Tag with column collation when possible=False ";
ADOConnection1->Connected=false;
ADOConnection1->ConnectionString=cnstr;
ADOConnection1->Connected=true;
Top
2 楼duduwolf(嘟嘟狼)回复于 2003-11-03 11:18:51 得分 6
给你一个delphi版的!修改成bcb很简单的,几乎不用动脑子的
procedure TForm1.Button1Click(Sender: TObject);
var
SQLServer:Variant;
ServerList:Variant;
i,nServers:integer;
sRetValue:String;
begin
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList:= SQLServer.ListAvailableSQLServers;
nServers:=ServerList.Count;
for i := 1 to nservers do
ListBox1.Items.Add(ServerList.Item(i));
SQLServer:=NULL;
serverList:=NULL;
end;
Top
3 楼52vc(方旭)回复于 2003-11-03 11:26:59 得分 18
早有人回答了!呵呵! ^_^Top
4 楼iamnojesus(流星)回复于 2003-11-03 15:49:17 得分 0
……,只能在注册了SQLDMO.DLL的机器上作用,否则出现“字符串类未注册”的提示。也就是说,必须将有SQL Server至少应该有MSDE才行,非得安装这些东西吗?有没有更好的办法,比如将SQLDMO.DLL打包编译进去……,请各位朋友指点。Top
5 楼youlooklook(你看你看)回复于 2003-12-05 11:13:10 得分 8
ChinaBCB上有,搜索一下看看。:)Top




