sql server服务器列表?和网上领居浏览窗 1 如果电脑没有装sql server怎么在listbox中获在sql server服务器列表?2 怎么显示网上领居浏览窗(如同DCOMconnection控件的computername属性),单击主机名添加到 edit1.text中了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个过程你:procedure GetSQLServerLsit;var SQLServer: Variant; ServerList: Variant; i, nServers: integer;begin lst_SQLSrvList.Items.Clear; try SQLServer := CreateOleObject('SQLDMO.Application'); ServerList := SQLServer.ListAvailableSQLServers; nServers := ServerList.Count; for i := 1 to nservers do lst_SQLSrvList.Items.Add(ServerList.Item(i)); SQLServer := NULL; serverList := NULL; except Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,' + #13 + #10 + '请直接输入SQL Server服务器名称!', '信息提示', MB_OK + MB_ICONINFORMATION); end;end; To zv008(zv)非常感谢你,对不起,说的不太清楚,是这样的:1.一台电脑如果没有装SQL SERVER,用什么方法获得网络中SQL SERVER服务器列名并添加到listbox122 怎么显示网上领居浏览窗(如同DCOMconnection控件的computername属性),单击主机名添加到 edit1.text中了? 取得当前局域网中有装SQL SERVER或有相应的数据库服务器procedure TMainCodeFrm.pGetServerName(var aCombox : TCombobox);var SQLServer: Variant; ServerList: Variant; i : integer;begin SQLServer := CreateOleObject('SQLDMO.Application'); ServerList := SQLServer.ListAvailableSQLServers; aCombox.Clear; for i := 1 to ServerList.Count do aCombox.Items.Add(ServerList.Item(i)); SQLServer := NULL; serverList := NULL;end; 1、看看那段代码吧。没装sqlserver是不能取得列表的。2、是不是要查找网上邻居上所有的计算机名? 1.PromptDataSource(GetActiveWindow, ''); To lw549(那个孩子他爹)不行吗,麻烦你,再看一看,谢谢 to Afei1(阿飞1) 按你的方法,实现上是在有装SQL SERVER机上获取列表的.to zv008(zv) 有何高见!第二题如同网上领居浏览对话框(如同DCOMconnection控件的computername属性)! 给段代码你:function SelectComputer: string; var WindowList: Pointer; BrowseInfo: TBrowseInfo; Buffer: PChar; RootItemIDList, ItemIDList: PItemIDList; ShellMalloc: IMalloc;begin Result := ''; FillChar(BrowseInfo, SizeOf(BrowseInfo), 0); if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then begin Buffer := ShellMalloc.Alloc(MAX_PATH); try RootItemIDList := nil; SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, RootItemIDList); with BrowseInfo do begin hwndOwner := Application.Handle; pidlRoot := RootItemIDList; pszDisplayName := Buffer; lpszTitle := '选择机器名'; ulFlags := BIF_BROWSEFORCOMPUTER; end; WindowList := DisableTaskWindows(0); try ItemIDList := ShBrowseForFolder(BrowseInfo); finally EnableTaskWindows(WindowList); end; if ItemIDList <> nil then begin Result := StrPas(Buffer); ShGetPathFromIDList(ItemIDList, Buffer); ShellMalloc.Free(ItemIDList); end; finally ShellMalloc.Free(Buffer); end; end;end; 怎么不行?代码来自,我一直用这个的,不用sqlserver客户端unit ADODB;function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;var DataInit: IDataInitialize; DBPrompt: IDBPromptInitialize; DataSource: IUnknown; InitStr: PWideChar;begin Result := InitialString; DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize; if InitialString <> '' then DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(InitialString), IUnknown, DataSource); DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize; if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle, DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then begin InitStr := nil; DataInit.GetInitializationString(DataSource, True, InitStr); Result := InitStr; end;end; to lw549(那个孩子他爹) ,谢谢老师,我试了一下,打开了UDL链接文件.谢谢老师。对不起,我表达的不够清楚,是在客户端的listbox1显示网络中所有的SQL SERVER服务器?(当客户端没有装SQL SERVER时)2 怎么显示网上领居浏览窗(如同DCOMconnection控件的computername属性),单击主机名添加到 edit1.text中了? 楼上的几位兄弟,大多原理实际上是调用 SQLDEMO.dll这个动态链接库的。如果没有装就没有这个动态链接库,也就不动用 createoleobject('SQLDEMO.application');.... 怎样获取richedit里每个字的颜色字体属性 三层结构主从表子表主表查询问题 释放内存会出错??TAdoStoredProc的Free 出错问题. 一个很复杂的问题求解决办法。 一个让我非常郁闷的问题,兄弟姐妹都来呀!!! SQL6.5的表删除不掉(肯定已经坏了),望各位支持一下,谢了(在线等待) 列表框的分栏 好久没来了,有1000多分,怎么给大家呀?来看看啦 20分求答一个简单的问题 ****** 20 分***** StringGrid的OnRowMove的事件,是在何时触发的 如何提高该报表(fastReport)的生成速度,在线等! 大家帮帮忙,关于广播包的发送
var
SQLServer: Variant;
ServerList: Variant;
i, nServers: integer;
begin
lst_SQLSrvList.Items.Clear;
try
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
nServers := ServerList.Count;
for i := 1 to nservers do
lst_SQLSrvList.Items.Add(ServerList.Item(i));
SQLServer := NULL;
serverList := NULL;
except
Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,' + #13 + #10 + '请直接输入SQL Server服务器名称!', '信息提示', MB_OK +
MB_ICONINFORMATION);
end;
end;
procedure TMainCodeFrm.pGetServerName(var aCombox : TCombobox);
var
SQLServer: Variant;
ServerList: Variant;
i : integer;
begin
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
aCombox.Clear;
for i := 1 to ServerList.Count do
aCombox.Items.Add(ServerList.Item(i));
SQLServer := NULL;
serverList := NULL;
end;
2、是不是要查找网上邻居上所有的计算机名?
var
WindowList: Pointer;
BrowseInfo: TBrowseInfo;
Buffer: PChar;
RootItemIDList, ItemIDList: PItemIDList;
ShellMalloc: IMalloc;
begin
Result := '';
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
try
RootItemIDList := nil;
SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK,
RootItemIDList);
with BrowseInfo do
begin
hwndOwner := Application.Handle;
pidlRoot := RootItemIDList;
pszDisplayName := Buffer;
lpszTitle := '选择机器名';
ulFlags := BIF_BROWSEFORCOMPUTER;
end;
WindowList := DisableTaskWindows(0);
try
ItemIDList := ShBrowseForFolder(BrowseInfo);
finally
EnableTaskWindows(WindowList);
end;
if ItemIDList <> nil then
begin
Result := StrPas(Buffer);
ShGetPathFromIDList(ItemIDList, Buffer);
ShellMalloc.Free(ItemIDList);
end;
finally
ShellMalloc.Free(Buffer);
end;
end;
end;
unit ADODB;function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
var
DataInit: IDataInitialize;
DBPrompt: IDBPromptInitialize;
DataSource: IUnknown;
InitStr: PWideChar;
begin
Result := InitialString;
DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
if InitialString <> '' then
DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER,
PWideChar(InitialString), IUnknown, DataSource);
DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
Result := InitStr;
end;
end;
谢谢老师。对不起,我表达的不够清楚,是在客户端的listbox1显示网络中所有的SQL SERVER服务器?(当客户端没有装SQL SERVER时)2 怎么显示网上领居浏览窗(如同DCOMconnection控件的computername属性),单击主机名添加到 edit1.text中了?