新房装饰品摆什么好:关于access数据库的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 21:58:37
在我的电脑上编了一个VC++的程序,用到了access数据库,因为是自学的,所以比较菜,在自己电脑上运行成功,当我把程序拷到别的电脑上时不能运行,因为没有在这台电脑的ODBC数据源管理器里添加这个程序的access数据库驱动,要像运行需要手动添加,请问怎样能让程序运行的时候自动添加access驱动到ODBC数据源管理器中呢?

VC++不怎么会用我用delphi完成的,就是写点东西到注册表就可以了
// 配置数据库
//
unit RegistryODBC;

interface
uses SysUtils,Registry,Windows,Classes,Dialogs;
procedure Registry_ODBC;

implementation
uses main,SysLib;

procedure Registry_ODBC;
var
Temp : TRegistry;
bData : array[ 0..0 ] of byte;
begin
Temp := TRegistry.Create; //建立一个Registry实例
with Temp 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( 'Swgl', 'Microsoft Access Driver (*.mdb)' );
end
else
begin//创建键值失败
SHOWMESSAGE('增加ODBC数据源失败');
exit;
end;
CloseKey;
//找到或创建Software\ODBC\ODBC.INI\LuTai,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\Swgl',True) then
begin
WriteString( 'DBQ', SysPath+'DATA\Swgl.mdb' ); //数据库目录
WriteString( 'Description','DH6409V上位机管理系统 V3.0' ); //数据源描述
WriteString( 'Driver', 'C:\WINDOWS\SYSTEM\odbcjt32.dll' ); //驱动程序DLL文件 ODBCJT32.DLL文件依据你的存放路径
WriteInteger( 'DriverId', 25 ); //驱动程序标识
WriteString( 'FIL', 'Ms Access;' );
//Filter依据
WriteInteger( 'SafeTransaction', 0 ); //支持的事务操作数目
//若不存在用户,则为下面一句:
WriteString( 'UID', '' ); //用户名称,若存在用户,则写入用户名
//若存在用户和密码,则为下面二句:
WriteString( 'UID', 'bec' ); //用户名
WriteString( 'PWD', 'bec' ); //口令
bData[0] := 0;
WriteBinaryData( 'Exclusive', bData, 1 ); //是否以独占方式打开,1为是,默认为0
WriteBinaryData( 'ReadOnly', bData, 1 ); //是否以只读方式打开,1为是,默认为0
end
else//创建键值失败
begin
showmessage('增加ODBC数据源失败');
exit;
end;
CloseKey;
// 找到或创建Software\ODBC\ODBC.INI\myaccess97\Engines\Jet 写入DSN数据库引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\Swgl\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;

end.

直接使用ado的链接呀!不要使用WINDOWS提供的那个ODBC数据源管理器。
set conn=server.CreateObject("adodb.connection")
DBPath = Server.MapPath(OD_DataBase)
conn.open "provider=microsoft.jet.oledb.4.0; data source=你的数据库名"

asp与vc++连接一样吗?不解