我的做好后的系统要到别的机器上运行,数据库是SQLSERVER的,
我的系统既是单机又是网络版,假如我原来自己的机器上的SQLSERVER和要运行的
SQLSERVER名称不一样,我用ADO挂接数据库,但是先要取得本机SQLSERVER的实例名,
才能挂。请问如何取得。
还有,我做了个小程序,里面可以列出当前网络中的所有计算机名称,那请
问我点选了一台计算机,怎样显示出它装有的SQLSEVER实例名称。
我的系统既是单机又是网络版,假如我原来自己的机器上的SQLSERVER和要运行的
SQLSERVER名称不一样,我用ADO挂接数据库,但是先要取得本机SQLSERVER的实例名,
才能挂。请问如何取得。
还有,我做了个小程序,里面可以列出当前网络中的所有计算机名称,那请
问我点选了一台计算机,怎样显示出它装有的SQLSEVER实例名称。
解决方案 »
- 如何用SendMessage来设置其他程序上的Listbox的值?
- 求关于读自身内存的简单写法。
- printer对象font.size如何设置成小数,主要想打出宋体五号字???
- 急救!!!谁有delphi7的indy控件中的idSNMP控件的问题!!!
- ???如何将查询内容保存到预先定义好的另外一张表内???
- 調用api函數﹐中間參數要用到指針﹐如何得到啊?
- 请问如何在强行终止查询呢?
- 关于从数据库中读取图片(image类型)的问题??
- 来看看这个交叉表的问题
- dateserial函数在DELPHI里是用什么取代的,写法如何?
- 请问如何实现存储过程和事务
- 请问网上哪里有dbgrid的增强控件,要功能强大,免费且有中文帮助的?
ConnStr:string;
begin
ConnStr := ConnStr + 'Provider=SQLOLEDB.1;';
ConnStr := ConnStr + 'Password=' + FormDataSet.edtPassword.Text + ';';
ConnStr := ConnStr + 'Persist Security Info=True;';
ConnStr := ConnStr + 'User ID=' + FormDataSet.edtUser.Text + ';';
ConnStr := ConnStr + 'Initial Catalog=MyDatabase;';
ConnStr := ConnStr + 'Data Source=' + FormDataSet.edtServer.Text + ';';
ADOConnection1.ConnectionString:=ConnStr;
ADOConnection1.Connected:=True;
end;
你可以将以上的连接信息写到注册表或ini文件中,在ADOConnection的BeforeConnect事件中如上设置ConnectionString
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;以上的程序可以得到网络上的所有sql 服务器,希望对你有用。
用.ini文件保存数据库参数,就可以了。
单元应用 uses加上comobj此单元
不然会提示没有声明这段代码似乎并不可以得到网络上的所有sql 服务器,只能得到本服务器上的sql server的名称
讨论.......
.....,SQLDMO_TLB;
.
.
.
procedure TTForm1.FormCreate(Sender: TObject);
var
App:_application
i:integer;
nl:namelist;
begin
App:=coapplication.Create;
nl:=App.ListAvailableSQLServers;
CmbxServer.Clear;
for i:=0 to nl.Count-1 do
begin
CmbxServer.Items.Add(nl.Item(i+1) )
end;
CmbxServer.ItemIndex:=0;
end;