procedure ODBCAlias(filename:string;ODBCName:string);
var registerTemp:TRegistry;
filepath,systempath:string;
begin
setlength(systempath,144);
if getsystemdirectory(pchar(systempath),144)<>0 then
begin
setlength(systempath,strlen(pchar(systempath)));
end;
registerTemp := TRegistry.Create; //建立一个Registry实例
filepath:=extractfilepath(filename);
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE
//找到Software\ODBC\ODBC.INI\ODBC Data Sources
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
begin //注册一个DSN名称
WriteString( odbcname, 'Microsoft Visual Foxpro Driver' );
end
else
begin//创建键值失败
exit;
end;
CloseKey;
//找到或创建Software\ODBC\ODBC.INI\foxpro,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\'+odbcname,True) then
begin
writeString('BackgroundFetch','Yes');
writestring('Collate','Machine');
writestring('Deleted','Yes');
writestring('Description','Visual Foxpro 数据库');
writestring('Driver',systempath+'\vfpodbc.dll');
writestring('Exclusive','No');
writestring('Null','Yes');
writestring('SetNoCountOn','No');
writestring('SourceDB',filepath);
writestring('SourceType','DBF');
end
else//创建键值失败
begin
Free;
exit;
end;
CloseKey;
end;
registerTemp.Free;
end;
(出处:www.delphibbs.com)