’MaxBufferSize’, 512 );//缓冲区大小
WriteInteger( ’PageTimeout’, 10 );//页超时
WriteInteger( ’Threads’, 3 );//支持的线程数目
WriteString( ’UserCommitSync’, ’Yes’ );
end
else//创建键值失败
begin
memo1.lines.add(’增加ODBC数据源失败’);
exit;
end;
CloseKey;
memo1.lines.add(’增加新ODBC数据源成功’);
Free;
end;
end;
以上程序在PWIN98+DELPHI3.0下调试通过.
下面是创建常见数据库类型的DSN需要设置的信息([]为注释内容,除特殊注释外,各参数可见前面说明):
1.Access(Microsoft Access Driver(*.mdb))
DBQ、Description、Driver[odbcjt32.dll]、DriverID[25]、FIL[Ms Access;]、
SafeTransaction[默认为0]、UID[默认为空]、
Engines\Jet\ImplicitCommitSync[默认为Yes]、Engines\Jet\MaxBufferSize[默认512]、
Engines\Jet\PageTimeout[默认为512]、Engines\Jet\Threads[默认为3]、
Engines\Jet\UserCommitSync[默认为Yes]
可选设置:SystemDb[字符串,系
统数据库的路径]、
ReadOnly[二进制,是否以只读方式打开,1为是,默认为0]、
Exclusive[二进制,是否以独占方式打开,1为是,默认为0]、
PWD[字符串,用户密码]
2.EXCEL(Microsoft Excel Driver(*.xls))
DBQ[Excel97(=path\xxx.xls)、5.0/7.0(=path\xxx.xls)、4.0(=path)、3.0(=path)]、
Description、Driver[odbcjt32.dll]、
DefaultDir[Excel97(<>DBQ)、5.0/7.0(<>DBQ)、4.0(=DBQ)、3.0(=DBQ)]、
DriverID[790(Excel97)、22(5.0/7.0)、278(4.0)、534(3.0)]、
FIL[Excel5.0;]、ReadOnly、SafeTransaction、UID、
Engines\Excel\ImplicitCommitSync、Engines\Excel\MaxScanRows[数字,扫描行数,默认为8]、
Engines\Excel\Threads、Engines\Excel\UserCommitSync、
Engines\Excel\FirstRowHasName[二进制,第一行是否是域名,1表示是,默认为1]
注: Excel97和Excel7.0/5.0的DBQ对应一个XLS文件,而Excel4.0和Excel3.0则对应一个目录;
DefaultDir对应一个目录,在Excel97和Excel7.0/5.0中是DBQ所对应的路径,而在
Excel4.0和Excel3.0下则与DBQ相同;各个版本的DriverID不同.
3.dBase(Microsoft dBase Driver(*.dbf))
DefaultDir[字符串,数据库文件所在目录]、Description、Driver[odbcjt32.dll]、
DriverID[277(IV)、533(5.0)]、FIL[dbase III;]、SafeTransaction、UID、
Engines\Xbase\ImplicitCommitSync、
Engines\Xbase\Collating[字符串,排序依据,可为ASCII、International、Norwegian-Danish、
Swedish-Finnish]、
Engines\Xbase\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、
Engines\Xbase\PageTimeout[默认为600]、Engines\Xbase\UserCommitSync、
Engines\Xbase\Threads、Engines\Xbase\Statistics[二进制,是否用大约的行数,1为是,默认0]
注:(dBaseIV和dBase5.0两个版本的DriverId有不同)
4.Foxpro(Microsoft Foxpro Driver(*.dbf))