我用如下代码想取得所有的sqlserver服务器名称,然后加入到listbox1中,但是系统产生错误“尚未调用 coinitialize”,不知是什么原因??
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;

解决方案 »

  1.   

    你机器上安装了sql server没有啊?要不没有sqldmo.dll文件,是不能运行的了。
    --------------------------------------
    看见了么,
    那支蛾子,
    正飞向太阳,
    那就是我!
    --------------------------------------
      

  2.   

    在你主程序的最后写上:
    uses
      ....Ole2,....
    //Ole2.pas 的路径为:$(DELPHI)\Source\Rtl\Win



    initialization
      CoInitialize(nil);end.
      

  3.   

    to liang_z(千山一刀之忍者神龟)
       
       还是出现那个错误提示??
    to  firetoucher(蹈火者)    我的机器上没装sqlserver,我把那个dll考到system32目录里,程序的存储目录里,但是还是不行??