在DELPHI中编程生成ACCESS数据库文件并创建指向此连接

上传人:新** 文档编号:457153303 上传时间:2023-06-01 格式:DOC 页数:8 大小:37.50KB
返回 下载 相关 举报
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接_第1页
第1页 / 共8页
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接_第2页
第2页 / 共8页
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接_第3页
第3页 / 共8页
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接_第4页
第4页 / 共8页
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《在DELPHI中编程生成ACCESS数据库文件并创建指向此连接》由会员分享,可在线阅读,更多相关《在DELPHI中编程生成ACCESS数据库文件并创建指向此连接(8页珍藏版)》请在金锄头文库上搜索。

1、在DELPHI中编程生成ACCESS数据库文件并创建指向此连接的ODBC数据源 要实现创建ACCESS数据库文件,我们要用到Windows系统中用来完成ODBC 管理功能的DLL(odbccp32.dll)。 废话少说,让我们用个例子来演示吧!(一)在DELPHI中新建一个工程,并在窗体上添加两个按钮。然后保存(二)从系统中搜索odbccp32.dll和odbcint.dll,一般在C:WINDOWSsystem32中,并将这两个文件拷贝到在上一步我们创建的DELPHI工程的同级目录下(三)在程序的中添加关于常量的定义const ODBC_ADD_DSN = 1; / 添加数据源 ODBC_C

2、ONFIG_DSN = 2; / 配置数据源 ODBC_REMOVE_DSN = 3; / 删除数据源 ODBC_ADD_SYS_DSN = 4; / 添加系统DSN ODBC_CONFIG_SYS_DSN = 5; / 配置系统DSN ODBC_REMOVE_SYS_DSN = 6; / 删除系统DSN(四)在程序的type处添加声明type TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR; lpszAttributes: LPCSTR ) : BOOL; stdcal

3、l;(五)用来完成建立DSN并生成数据库文件的代码如下:procedure TForm1.Button1Click(Sender: TObject);var pFn: TSQLConfigDataSource; hLib: LongWord; strDriver: string; strAttr: string; strFile: string; fResult: BOOL; srInfo : TSearchRec;begin /获得程序所在路径 strFile := ExtractFilePath(ParamStr(0)+Test.MDB; /加载动态库 hLib := LoadLibrar

4、y( ODBCCP32 ); if( hLib NULL ) then begin pFn := GetProcAddress( hLib, SQLConfigDataSource ); if( pFn nil ) then begin / 重新建立DSN strDriver := Microsoft Access Driver (*.mdb); strAttr := Format( DSN=TestDSN+#0+ DBQ=%s+#0+ Exclusive=1+#0+ Description=Test Data+#0+#0, strFile ); fResult := pFn( 0, ODBC

5、_ADD_SYS_DSN, strDriver1, strAttr1 ); if not fResult then ShowMessage( 创建DSN失败! ); / 检测/创建同DSN关联的 MDB 文件 if( FindFirst( strFile, 0, srInfo ) 0 ) then begin strDriver := Microsoft Access Driver (*.mdb); /,CREATE_DB的调用是Access(MS Jet引擎)的专有调用,类似的还有COMPACT_DB和REPAIR_DB等 strAttr := Format( DSN=TestDSN+#0+

6、 DBQ=%s+#0+ Exclusive=1+#0+ Description=Test Data+#0+ CREATE_DB=%s#0+#0, strFile,strFile ); fResult := pFn( 0, ODBC_ADD_SYS_DSN, strDriver1, strAttr1 ); if not fResult then ShowMessage( 创建MDB文件失败 ); end; FindClose( srInfo ); end; FreeLibrary( hLib ); end else ShowMessage( 无法加载ODBCCP32.DLL );end;(六)用

7、来动态创建ODBC的DSN数据源代码procedure TForm1.Button2Click(Sender: TObject);var registerTemp : TRegistry; bData : array 0.0 of byte;begin registerTemp := TRegistry.Create; with registerTemp do begin RootKey:=HKEY_LOCAL_MACHINE; /找到SoftwareODBCODBC.INIODBC Data Sources if OpenKey(SoftwareODBCODBC.INIODBC Data S

8、ources,True) then begin /注册DSN名称 WriteString( MyAccess, Microsoft Access Driver (*.mdb) ); end else begin showmessage(添加ODBC数据源失败); exit; end; CloseKey; /找到或创建SoftwareODBCODBC.INIMyAccess,写入DSN配置信息 if OpenKey(SoftwareODBCODBC.INIMyAccess,True) then begin WriteString( DBQ, ExtractFilePath(ParamStr(0)

9、+Test.MDB );/数据库目录,连接您的数据库 WriteString( Description,我的新数据源 );/数据源描述 WriteString( Driver, C:WINDOWSsystem32odbcjt32.dll );/驱动程序DLL文件 WriteInteger( DriverId, 25 ); /驱动程序标识 WriteString( FIL, Ms Access; ); /Filter依据 WriteInteger( SafeTransaction, 0 ); /支持的事务操作数目 WriteString( admin, );/用户名称 bData0 := 0;

10、WriteBinaryData( Exclusive, bData, 1 ); /非独占方式 WriteBinaryData( ReadOnly, bData, 1 ); /非只读方式 end else begin showmessage(添加ODBC数据源失败); exit; end; CloseKey; /找到或创建SoftwareODBCODBC.INIMyAccessEnginesJet /写入DSN数据库引擎配置信息 if OpenKey(SoftwareODBCODBC.INIMyAccessEnginesJet,True) then begin WriteString( Impl

11、icitCommitSync, 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;(七)F9运行程序,首先点击BUTTON1,然后你可以在程序的同级目录下找打新建立的MDB文件,Test.MDB。然后打开控制面板-管理-ODBC数据源,你会发现在系统DSN这一页面中多了一个TestDSN项,打开后可以看到它指向程序创建的Test.mdb。然后点击BUTTON2,待弹出增加新ODBC数据源成功的对话框后,再次转到ODBC数据源查看,你会发现在系统DSN中又多了一个Myaccess项,它也指向由程序创建的Test.mdb。如果有兴趣,你还可以注意一下注册表的变化,那样,你会对程序中的代码有更直观的认识。(八)以上程序在WinXp,DELPHI7下测试通过。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号