我是DELPHI新手,求老鸟教我怎样实现数据库程序的发布(100分)

  • 主题发起人 主题发起人 protossgffnxk
  • 开始时间 开始时间
P

protossgffnxk

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样发布用ACCESS数据库做的程序,是不是一定要配置数据源(ODBC),如果想将程序
直接在没装DELPHI的机器上使用我该怎么办????
 
用专门的软件制作安装盘。例如:installshield.
delphi自带了一个installshield express for delphi软件可以制作安装盘。
论坛里有关于此软件使用方法的介绍,你自己搜一下。
 
to mlzhou
如果不用这东西,有没有更好的方法。特别是不想配置数据源
 
开发时用ADO接口
 
1.你可以用ADO进行数据连接,这样就不用单独配置ODBC。但是,程序里所有的数据连接和QUERY全部要改为ADO方式。
2.如果你用ODBC连接的,客户端需要进行BDE和ODBC的配置。可以采用
delphi自带了installshield express for delphi软件,可以制作安装盘。
这个里面自动完成BDE的配置。
ODBC自动配置,可以自己写注册程序,很简单的,写完了,可以和程序一起用installshield express for delphi
发布,安装最终,可以自动执行ODBC注册程序。这样,一个标准安装,就完成所有功能。
 
同意楼上的看法。
 
给一个增加ODBC的函数给你,也希望大家看看,看有什么问题没有。
调试是通过了的。
function RegistryODBC(StrDsn,StrServer,StrDatabase:string):boolean;
var
registerTemp : TRegistry;
StrOdbcIni:string;
Exists:Boolean;
begin
Exists:=false;
StrOdbcIni:='Software/ODBC/ODBC.INI/';
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;
//function KeyExists(const Key: String): Boolean;
//<<注册一个System DSN

if OpenKey(StrOdbcIni+'ODBC Data Sources',True) then
begin
WriteString( StrDsn, 'SQL Server' );
end
else
begin
MessageDlg('增加ODBC数据源失败:'+StrDsn, mtError, [mbOK] ,0);
result:=false;
exit;
end;
CloseKey;

//<<找到或创建System DSN Configuration Information
if KeyExists(StrOdbcIni+StrDsn) then
Exists:=True;
if OpenKey(StrOdbcIni+StrDsn,True) then
begin
WriteString( 'DataBase', StrDatabase );
WriteString( 'Driver', 'C:/WINDOWS/SYSTEM/sqlsrv32.dll' );
Writestring( 'Server', StrServer );
end
else
begin
MessageDlg('增加ODBC数据源失败:'+StrDsn, mtError, [mbOK] ,0);
result:=false;
exit;
end;
CloseKey;
Free;
if not Exists then
MessageDlg('增加ODBC数据源成功:'+StrDsn, mtInformation, [mbOK] ,0);
result:=true;
end;
end;
 
参见我的问题http://www.delphibbs.com/delphibbs/dispq.asp?lid=1036193
 
用installshield可以把DBE打包到安装程序中,就可以不用装DELPHI了。
关于ODBC配置,你用的是ACCESE的话,和nickylin的方法差不多,但应这样:
procedure Tfrlogo.FormCreate(Sender: TObject);
VAR
REG:TREGISTRY;
begin
REG:=TREGISTRY.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
if reg.OpenKey('Software/ODBC/ODBC.INI/ODBC Data Sources',True) then
reg.WriteString('WLGL','Microsoft Access Driver (*.mdb)')
else
begin
application.MessageBox('错误,不能创建ODBC数据源!','错误',mb_ok+mb_iconerror);
application.Terminate;
end;
reg.CloseKey;
if reg.OpenKey('Software/ODBC/ODBC.INI/WLGL',True) then
begin
reg.WriteString('DBQ',extractfilepath(application.ExeName)+'你的数据库.mdb');
reg.WriteString('Description','物料管理');
reg.WriteString('Driver',getwindir+'/System32/odbcjt32.dll');//getwindir是一个获得WINDOWS目录的函数!
reg.WriteInteger('DriverId',25);
reg.WriteString('FIL','MS Access;');
reg.WriteInteger('SafeTransactions',0);
reg.WriteString('UID','');
reg.CloseKey;
if reg.OpenKey('Software/ODBC/ODBC.INI/WLGL/Engines',true) then
begin
reg.CloseKey;
if reg.OpenKey('Software/ODBC/ODBC.INI/WLGL/Engines/Jet',true) then
begin
reg.WriteString('ImplicitCommitSync','');
reg.WriteInteger('MaxBufferSize',2048);
reg.WriteInteger('PageTimeout',5);
reg.WriteInteger('Threads',3);
reg.WriteString('UserCommitSync','Yes');
end
else
begin
application.MessageBox('错误,不能创建ODBC数据源!','错误',mb_ok+mb_iconerror);
application.Terminate;
end;
end
else
begin
application.MessageBox('错误,不能创建ODBC数据源!','错误',mb_ok+mb_iconerror);
application.Terminate;
end;
end
else
begin
application.MessageBox('错误,不能创建ODBC数据源!','错误',mb_ok+mb_iconerror);
application.Terminate;
end;
reg.CloseKey;
打包的时候可能要把ACCESSR的驱动一起打包,如果目录机器没有装OFFICE的话。
要打你的数据库放在同应用程序的同一目录下,如果不的话,上面的路径就要改!
 
我安装的DELPHI里没有INSTALLSHIELD FOR DELPHI,请问有没有下载的,最好是有注册码
 
光盘里自带有,D4,D5,D6都有,前面的没见过,不知道有没有!
可以到软件万花筒去看看,好象有!www.superdown.com
 
多人接受答案了。
 
后退
顶部