首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

在DELPHI程序中自动设置ODBC数据源(2)

2009-06-25 
二级DELPHI

  begin//创建键值失败

  memo1.lines.add(’增加ODBC数据源失败’);

  exit;

  end;

  CloseKey;

  //找到或创建Software\\ODBC\\ODBC.INI\\MyAccess,写入DSN配置信息

  if OpenKey(’Software\\ODBC\\ODBC.INI\\MyAccess’,True) then

  begin

  WriteString( ’DBQ’, ’C:\\inetpub\\wwwroot\\test.mdb’ );//数据库目录

  WriteString( ’Description’, ’我的新数据源’ );//数据源描述

  WriteString( ’Driver’, ’C:\\PWIN98\\SYSTEM\\odbcjt32.dll’ );//驱动程序DLL文件

  WriteInteger( ’DriverId’, 25 );//驱动程序标识

  WriteString( ’FIL’, ’Ms Access;’ );//Filter依据

  WriteInteger( ’SafeTransaction’, 0 );//支持的事务操作数目

  WriteString( ’UID’, ’’ );//用户名称

  bData[0] := 0;

  WriteBinaryData( ’Exclusive’, bData, 1 );//非独占方式

  WriteBinaryData( ’ReadOnly’, bData, 1 );//非只读方式

  end

  else//创建键值失败

  begin

  memo1.lines.add(’增加ODBC数据源失败’);

  exit;

  end;

  CloseKey;

  //找到或创建Software\\ODBC\\ODBC.INI\\MyAccess\\Engines\\Jet

  //写入DSN数据库引擎配置信息

  if OpenKey(’Software\\ODBC\\ODBC.INI\\MyAccess\\Engines\\Jet’,True) then

  begin

  WriteString( ’ImplicitCommitSync’, ’Yes’ );

  WriteInteger( ’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))

  DefaultDir[数据库文件所在目录]、Description、Driver[odbcjt32.dll]、

  DriverID[536(2.6)、280(2.5)]、FIL[Foxpro 2.0;]、SafeTransaction、UID、

  Engines\\Xbase\\Collating[字符串,排序依据,可为ASCII、International]、

  Engines\\Xbase\\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、

  Engines\\Xbase\\PageTimeout[默认为600]、Engines\\Xbase\\UserCommitSync、

  Engines\\Xbase\\Threads、Engines\\Xbase\\Statistics[二进制,是否用大约的行数,1为是,默认0]

  注:(Foxpro2.5和Foxpro2.6两个版本的DriverId有不同)

  把上面程序做成一个COM或ActiveX控件吧,在很多高级程序设计语言如DELPHI、C++Buider、VB、VC、PB中都能用到的.

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行