现在写了一个程序,数据库用的是mysql数据库。连接mysql数据中用到了MyODBC的驱动。
现在问题是,做完安装包想自动注册ODBC,请问各位怎么实现?

解决方案 »

  1.   

    DelPhi 7 视频教程 v5.1.88 完整版
    有這方面的說明
    http://www.2ccc.com/downloads.asp?subcatalogid=512
      

  2.   

    自动注册ODBC的,用的是ACCESS数据库,写在工程文件中,每次一运行就注册,不用担心用户误操作ODBC了,控件我就没
      AppPath:=ExtractFilePath(Application.ExeName);  //取得应用程序的当前路径
      GetMem(SysDir,255);
      GetSystemDirectory(SysDir,255); //取得WINDOWS系统目录
      Path:=String(SysDir);
      registry1:=tregistry.Create;
      registry1.RootKey:=HKEY_CURRENT_USER;
      if registry1.OpenKey('software\odbc\odbc.ini\odbc data sources',true) then
      begin
        registry1.WriteString('MWKQ1','Microsoft Access Driver (*.mdb)');
        registry1.CloseKey;
      end;
      if registry1.OpenKey('software\odbc\odbc.ini\MWKQ1',true) then
      begin
        registry1.WriteString('DBQ',apppath+'MWKQ1.mdb');
        registry1.WriteString('Driver',path+'\odbcjt32.dll');
        registry1.Writeinteger('DriverId',25);
        registry1.writestring('FIL','MS Access;');
        registry1.WriteInteger('SafeTransactions',0);
        registry1.WriteString('UID','');
        registry1.CloseKey;
      end;
      if registry1.OpenKey('software\odbc\odbc.ini\MWKQ1\Engines\Jet',true) then
      begin
        registry1.writestring('ImplicitCommitSync','Yes');
        registry1.writeinteger('MaxBufferSize',512);
        registry1.WriteInteger('PageTimeout',10);
        registry1.writeinteger('Threads',3);
        registry1.WriteString('UserCommitSync','Yes');
      end;
      registry1.CloseKey ;
      registry1.Free;