線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:802
推到 Plurk!
推到 Facebook!

求助,动态创建 ODBC 数据源的问题,谢谢!

尚未結案
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-15 11:01:36 IP:219.128.xxx.xxx 未訂閱
数据库 paradox 系统 WIN2000  SERVER      我用下面的程序 创建一个 MyParadox ODBC 数据源 procedure TForm1.Button1Click(Sender: TObject);    var   registerTemp : TRegistry;   bData : array[ 0..0 ] of byte; begin   registerTemp := TRegistry.Create;   //建立一个Registry实例   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( 'MyParadox', 'Driver do Microsoft Paradox(*.db)' );                       end                else                       begin//创建键值失败                                Showmessage('增加ODBC数据源失败');                                exit;                       end;                CloseKey;                //找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息                if     OpenKey('Software\ODBC\ODBC.INI\MyParadox',True) then                       begin                             WriteString( 'DBQ', 'C:\AAAA.db' );//数据库目录,连接您的数据库                             WriteString( 'Description','我的新数据源' );//数据源描述                             WriteString( 'Driver', 'C:\WINNT\SYSTEM\odbcjt32.dll' );//驱动程序DLL文件                             WriteInteger( 'DriverId', 25 );//驱动程序标识                             WriteString( 'FIL', 'Ms Paradox;' );//Filter依据                             WriteInteger( 'SafeTransaction', 0 );//支持的事务操作数目                             WriteString( 'UID', '' );//用户名称                             bData[0] := 0;                             WriteBinaryData( 'Exclusive', bData, 1 );//非独占方式                             WriteBinaryData( 'ReadOnly', bData, 1 );//非只读方式                       end                 else//创建键值失败                       begin                              Showmessage('增加ODBC数据源失败');                              exit;                       end;                 CloseKey;               //找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet               //写入DSN数据库引擎配置信息                 if      OpenKey('Software\ODBC\ODBC.INI\MyParadox\Engines\Jet',True) then                         begin                              WriteString( 'ImplicitCommitSync', 'Yes' );                              WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小                              WriteInteger( 'PageTimeout', 10 );//页超时                              WriteInteger( 'Threads', 3 );//支持的线程数目                              WriteString( 'UserCommitSync', 'Yes' );                         end                 else//创建键值失败                         begin                              Showmessage('增加ODBC数据源失败');                              exit;                        end;                CloseKey;                Showmessage('增加新ODBC数据源成功');                Free;       end;    end;    创建 MyParadox ODBC 数据源 后,我用 ADOConnection1 连接时出现了如下面的错误    请教各位大哥,我是错误在哪里呢? riteString( 'FIL', 'Ms Paradox;' );//Filter依据 这里,好像应该是错了的,但是我不知道修改    谢谢各位大哥!        
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-15 18:12:30 IP:211.74.xxx.xxx 未訂閱
請至 regedit 中 打開相對應的 registry key 察看你寫入的值是不是跟手動在ODBC設定中加入的項目相同 要注意一些binary / int<->hex 值 @瞭解越多.懂得越少@
系統時間:2024-06-29 22:33:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!