dbExpress发布 200分 在线等(200分)

  • 主题发起人 主题发起人 luckj
  • 开始时间 开始时间
L

luckj

Unregistered / Unconfirmed
GUEST, unregistred user!
dbExpress 程序发布时不打包dbxconnections.ini、dbxdrivers.ini和不改注册表。数据库是MSSQL2000。如何作到。在线等 200分。
在没有Delphi的机器上试过后,发分。
 
if SQLConnection1.Connected=true then
SQLConnection1.Connected:=false;
SQLConnection1.Params.Clear;
SQLConnection1.Params.Values['user_name']:='sa';
SQLConnection1.Params.values['password']:='';
SQLConnection1.Params.Values['LibraryName']:='dbexpmss.dll';
SQLConnection1.Params.values['VendorLib']:='oledb';
sqlConnection1.Params.Values['GetDriverFunc']:='getSQLDriverMSSQL';
SQLConnection1.Params.Values['database']:='master';
SQLConnection1.Connected:=true;
showmessage('连接成功');
以上在WINXP SP2 + D7 + ADO2.8环境下测试成功,本机已经装过了SQL2000,所以不知道在没安装SQL2000的机器上是什么结果。由于是用DBEXPRESS是OLEDB方式连接SQL SERVER,所以应该保证该机器安装了MDAC2.6(ADO)以上,如果缺少文件的话,把那几个DLL文件打包到程序所在目录,Midas.dll、DBEXPMSS.DLL
 
懒虫007 !谢谢
问题解决了。是我没有搞懂SQLConnection过行期的问题。dbxconnections.ini、dbxdrivers.ini只是在开发状态有效。如果在开发时不在SQLConnection中设置ConnectionName的信息,直接进行SQLConnection1.Params设置。程序会提示Missing DriverName Property 。
小结一下,dbExpress发布问题
第一步、开发时双击TSQLConnection组件,选择你要的连接数据类型(这些参数在dbxconnections.ini、dbxdrivers.ini两个文件中)。
如果发布时不需要改变数据连接方式 。需要发布dbexpmss.dll(用于MSSQL专用)、midas.dll和你的程序(假定数据库类型是MSSQL)
如果发布时需要根据用户要求改变数据库连接。第一步要一定要完成并且能成功连接。然后动态设置Params参数。如以下过程
with SQLConnection1do
begin
Connected:=false;//如果是连接的一定要断开
Params.Clear;//一定要清除
Params.Add('DriverName=MSSQL');//微软的SQL数据库类型
Params.Add('HostName=luckj');//数所据库IP或名字
Params.Add('DataBase=gps');//登入的数据库名
Params.Add('User_Name=sa');//登入的用户名
Params.Add('Password=sa');//用户口令不能为空!!!!!!!
Params.Add('BlobSize=-1');
Params.Add('ErrorResourceFile=');
Params.Add('LocaleCode=0000');
Params.Add('MSSQL TransIsolation=ReadCommited');
Params.Add('OS Authen
tication=False');
Connected:=true;
end;
发布时需dbexpmss.dll(用于MSSQL专用)、midas.dll和你的程序。
可以看出:发布的文件必需要有Midas.dll 、你的程序和以下相应数据库DLL一个。
这是不同数据库需要的DLL
[DB2] dbexpdb2.dll
[Interbase] dbexpint.dll
[MySQL] dbexpmysql.dll
[Oracle] dbexpora.dll
[Informix] dbexpinf.dll
[MSSQL] dbexpmss.dll
dbxconnections.ini、dbxdrivers.ini两个文件在发布时是无用的。
这分数一半要归我,其实懒虫007没有完会解决这个问题。以上方法可能不是最好处理方法,但一定能解决你的发布问题。^_^ 没分了潜水去了。
 
补充
如果你开发时设置的数据库类型和最后的使用的类型一样的。简化为
with SQLConnection1do
begin
Connected:=false;//如果是连接的一定要断开
Params.Clear;//一定要清除
Params.Add('HostName=luckj');//数所据库IP或名字
Params.Add('DataBase=gps');//登入的数据库名
Params.Add('User_Name=sa');//登入的用户名
Params.Add('Password=sa');//用户口令不能为空!!!!!!!
Connected:=true;
end;
 
呵呵,总结挺全面,其实这个是用Firebird的改过来了,我试了一下还成就发出来了,具体没研究
 

Similar threads

D
回复
0
查看
753
DelphiTeacher的专栏
D
后退
顶部