用BDE中的TSession组件可以用如下方法获得本地所有ODBC数据源名
Session1.GetAliasNames(Listbox1.items)
但是这样的话,程序发布的时候,需要打包BDE,程序本身很小,一打包就会变很大了,有没有什么其他方法可以获得本地所有数据源名啊,ADO可以吗?API怎么实现?可以写一些关键代码给小弟吗?谢谢了.
Session1.GetAliasNames(Listbox1.items)
但是这样的话,程序发布的时候,需要打包BDE,程序本身很小,一打包就会变很大了,有没有什么其他方法可以获得本地所有数据源名啊,ADO可以吗?API怎么实现?可以写一些关键代码给小弟吗?谢谢了.
uses
Registry;procedure TForm1.Button1Click(Sender: TObject);
var
n: Integer;
List: TStringList;
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.LazyWrite := False;
Reg.OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', False);
List := TStringList.Create;
Reg.GetValueNames(List);
ListBox1.Clear;
for n := 0 to List.Count - 1 do
ListBox1.Items.Add(List.Strings[n]);
Reg.CloseKey;
finally
Reg.Free;
end;
end;
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqldatasources.asp