no,but in C,you can use the function to get it. INT dbserverenum ( USHORT searchmode, LPSTR servnamebuf, USHORT sizeservnamebuf, LPUSHORT numentries );
no,but in C,you can use the function to get it. INT dbserverenum ( USHORT searchmode, LPSTR servnamebuf, USHORT sizeservnamebuf, LPUSHORT numentries );
////////////////////// 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; ////////////////////// 这一段DELPHI程序能改成BCB吗? BCB的Variant类型好像没有ListAvailableSQLServers和Count属性吧。
CREATE PROCEDURE [dbo].[usp_serverlist] AS create table #serverlist(servername nvarchar(132)) insert into #serverlist(servername) exec master.dbo.xp_cmdshell 'osql -L' select ltrim(rtrim(servername)) as servername from #serverlist where left(servername,1)=' ' drop table #serverlist GO
INT dbserverenum (
USHORT searchmode,
LPSTR servnamebuf,
USHORT sizeservnamebuf,
LPUSHORT numentries );
INT dbserverenum (
USHORT searchmode,
LPSTR servnamebuf,
USHORT sizeservnamebuf,
LPUSHORT numentries );
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;
//////////////////////
这一段DELPHI程序能改成BCB吗?
BCB的Variant类型好像没有ListAvailableSQLServers和Count属性吧。
create table #serverlist(servername nvarchar(132))
insert into #serverlist(servername) exec master.dbo.xp_cmdshell 'osql -L'
select ltrim(rtrim(servername)) as servername
from #serverlist
where left(servername,1)=' '
drop table #serverlist
GO
Variant SQLServer,ServersList;
int ServersCount;
SQLServer = Variant::CreateObject("SQLDMO.Application");
ServersList = SQLServer.OleFunction("ListAvailableSQLServers");
ServersCount = ServersList.OlePropertyGet("Count");
for(int j=1;j<=ServersCount;j++)
CB_Servers->Items->Add(ServersList.OleFunction("Item",j));
if (ServersCount >=1)
CB_Servers->ItemIndex = 0;
这段程序在装有SQL Server的机器上用得挺好,但在没有装SQL Server的机器上却说:“类字符串无效”。估计是找不到“SQLDMO.Application”。
请教这个问题怎么解决?是否要把一些SQL Server库拷到没有装SQL Server的机器上?