如何编程实现获得SQL Server 服务器的服务器名和用户名,有相应的函数吗?
解决方案 »
- 求:有关监视打印的资料
- 在Delphi中,创建一个窗口,想让程序启动时,这个窗口是默认是隐藏的,如何实现?
- 关于D7中的TCustomLabeledEdit的问题
- c#写的COM在DELPHI里用,C#的类型和DELPHI类型不匹配,怎么办?谢谢!!!!!!!!!
- rave 怎么能直接打印
- 急急急!!24小时内给分!!!急死我了,Dbedit控件不能输入数据,后台数据库ms sql server 2k!!!!!
- 请教如何结贴子呀?不能白让大家帮我
- 我想要在程序运行期取得一个类的实例,就是动态生成按钮控件,请高手指点
- ADO怎么释放DBF文件?
- 按文件名排序最快的方法?
- 组件NMStrm1的问题
- 如何自定义窗体标题栏文字??十万火急
data source 就是SQL Server 服务器的服务器名
应该可以做到。
可是,我还不会。抱歉!!!如果是一般的c/s,不用在delphi中获得服务器的服务器名。将ADOConnection的 connectionstring保存在.ini文件中,程序启动调用即可。用友的u8等软件都是这样的。可是修改.ini改变ADOConnection,也可以在提供ADOConnection的connectionstring的修改界面。(读、写.ini文件)
所以推荐上面的这个。
可是修改.ini改变ADOConnection,也可以在提供ADOConnection的connectionstring的修改界面。(读、写.ini文件)password不应该保存在ini中的,那样太危险了。我的做法是分割connectionstring,得到password前的部分,和passwrod后面的部分,中间的password是死的。function SplitConStr( Source : ansistring ):tstrings;
//分割连接字符串,返回除password部分外的两部分字符串
//Result.String[0]为第一部分字符串
//Result.String[1]为第二部分字符串
//Copy Right 549@9:59 2003-7-28
begin
Result := tstringlist.Create;
Result.Add( copy( Source, 1, pos( 'Password', pchar( Source ) ) - 1 ) );
Result.Add( copy( Source, pos( 'Password', pchar( Source ) ), length( Source ) ) );
Result.Strings[1]:=copy( Result.Strings[1], pos( ';',Result.Strings[1]) + 1, length( Result.Strings[1] ) - 1 );
end;
var
i: integer;
vSQLServer: Variant;
vServerList: Variant;
begin
Result := False;
if AList = nil then Exit;
AList.Clear;
try
vSQLServer := CreateOleObject('SQLDMO.Application');
vServerList := vSQLServer.ListAvailableSQLServers;
for i := 1 to vServerlist.Count do
AList.Add (vServerlist.item(i));
Result := True;
finally
vSQLServer := NULL;
vServerList := NULL;
end;
end;
那么可以通过读取该.ini文件来获取服务器名和当前用户名。
我就是这样配置连接数据库的,方便!