回 帖 发 新 帖 刷新版面

主题:[原创]delphi的程序怎样才能脱离环境运行啊?

我的程序已经写完了,我用的是SQL数据库,添加了系统数据源。程序自动编译成了project1.exe。当我把project1.exe拿到别的机器上时,程序无法运行,新的机器上有SQL,并且我也添加了数据源。
delphi的程序怎样才能脱离环境运行啊?
是不是delphi的程序发布有什么规定啊?


回复列表 (共7个回复)

沙发

尽量使用ADO,不要使用BDE,如果你使用的是BDE的话,那就要装下bde了,使用delphi自带的安装程序打个包

板凳

如果你想在别的机子继续做程序的话就得从新连接ADOConnection
如果想在别的机子运行的话就建个DataModule然后用ADO连接

3 楼

同意2楼的说法!

4 楼

还是ADO,用一个ADOConnection进行数据库连接就行!
其他的都用它!
容易管理!
当然也是要建一个DataModule!

5 楼

数据库的连接语句最好是可以放到.ini文件中!

通过读取来连接数据库

6 楼

用ADO连接技术,但应该添加一个下面的过程
//用户管理联接
procedure TDM.ADOConnection1BeforeConnect(Sender: TObject);
var
a:string;
begin
  ADOConnection1.Connected:=false;   //设置connected属性为false
  a:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;';// Provider=Microsoft.Jet.OLEDB.4.0  User ID=Admin;这是如何设置呢?
  a:=a+'Data Source='+ExtractFilePath(application.ExeName)+'DADE bass\用户管理.mdb;';  // main.address :=application.ExeName;在这里不能直接调用
  a:=a+'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";';
  a:=a+'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;';
  a:=a+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;';
  a:=a+'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
  ADOConnection1.ConnectionString:=a+'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
end;

7 楼

同意2楼的说法

我来回复

您尚未登录,请登录后再回复。点此登录或注册