求教程序发布的问题

qvsl 2003-10-29 04:23:11
请问做好程序生成执行文件后,怎么能做到不用我一个一个机器去手动
设置数据源,而是像别的软件一样有个安装文件什么的,一运行就完了。
最后的10分了,,,不好意思,,是有点少。。
谢谢谢谢!!!!
...全文
23 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qvsl 2003-10-30
  • 打赏
  • 举报
回复
谢谢谢谢
daryl715 2003-10-29
  • 打赏
  • 举报
回复
有问题的话请联系我daryl715@etang.com
在应用对象autoregister的open事件中编写下述脚本
ulong ul_num // 定义程序所需变量
int answer, answer1, answer2, answer3, answer4, answer5, answer6 &
answer7,ansapp // 定义程序所需变量
string ls_drivers,ls_start,ls_apppath,db_path,db_name,odbcstr,ds_name &
ls_location // 定义程序所需变量
// 设置Adaptive Server AnyWhere 7.0 的驱动程序路径,此处为PowerBuilder 8.0
// 的默认安装路径,需根据具体情况进行配置。
ls_location="C:\Program Files\Sybase\SQL Anywhere 7\win32\"
// 判断Adaptive Server AnyWhere 7.0 的驱动程序是否安装正确
ls_drivers=ls_location+"dbodbc7.dll"
ls_start=ls_location+"dbeng7.exe"
if not (fileExists(ls_drivers) and fileExists(ls_start)) then
messagebox("错误!","系统中没有安装Adaptive Server AnyWhere 7.0"+&
"的驱动程序,系统将中止运行!",StopSign!)
return
end if
// 设置ODBC\ODBCINST.INI\ODBC DRIVERS
answer=Registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCINST.INI"+&
+"\ODBC Drivers","adaptive server anywhere 7.0",Regstring!,+&
"Installed")
if answer=-1 then
messagebox("错误!","应用程序无法设置ODBC\ODBCINST.INI\ODBC Drivers"+&
",系统将中止运行!",Information!)
return
end if
// 设置ODBC\ODBCINST.INI
answer1=registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCinst."+"ini\+&
"adaptive server anywhere 7.0","CPtimeout",regstring!,"not pooled")
answer2=registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCinst."+"ini\+&
"adaptive server anywhere 7.0","driver",regstring!,"ls_driver")
answer3=registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBCinst."+"ini\+&
"adaptive server anywhere 7.0","setup",regstring!,"ls_driver")
if answer1=-1 or answer2=-1 or answer3=-1 then
messagebox("错误!", "应用程序无法设置ODBC\ODBCINST.INI,系统将终止+&
"运行!",Information!) // 程序不执行
return
end if
// 这是数据库文件路径以及文件名,建议使用getcurrentdirectory()函数,设置相// 对路径
db_path=getcurrentdirectory()+"\test.db"
// 设置数据库名称
db_name="test"
// 设置ODBC数据源名称
ds_name="test"
// 设置ODBC DATA SOURCE名称
answer=Registryset("HKEY_LOCAL_MACHINE\software\ODBC\ODBC.INI"+&
"\ODBC Data Source",ds_name,Regstring!, "adaptive server+&
"anywhere 7.0")
if answer=-1 then
messagebox("错误!","应用程序无法设置ODBC DATA SOURCE名称"+&
",系统将中止运行!",Information!) // 程序不执行
return
end if
// 设置ODBC.ini细节
answer1=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"driver",regstring!,ls_drivers)
answer2=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"start",regstring!,ls_start)
answer3=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"autostop",regstring!,"yes")
answer4=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"databasefile",regstring!,db_path)
answer5=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&
me,"databasename",regstring!,db_name)
answer6=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"pwd",regstring!,"sql")
answer7=registryset("HKEY_current_User\software\odbc\odbc.ini\"+ds_na+&me,"uid",regstring!,"dba")
if answer1=-1 or answer2=-1 or answer3 =-1 or answer4 =-1 or answer5 =-1 +&
or answer6=-1 or answer7=-1 then
messagebox("错误","应用程序无法设置ODBC.ini细节,系统将中止运+&
"行!",Information!)
return
end if
// 连接数据库
odbcstr='dsn='+db_name+';databasename='+db_name+';databasefile='+db_path
SQLCA.DBMS = "ODBC"
SQLCA.database=db_name
SQLCA.DBParm = "Connectstring='"+odbcstr+";uid=dba;pwd=sql'"
connect using sqlca;
if sqlca.sqlcode=-1 then
messagebox("连接数据库失败","出错原因: "+sqlca.sqlerrtext)
else
messagebox("连接数据库成功","建立ODBC数据源及连接数据库成功")
end if
open(w_main) // 打开应用程序主窗口


这段代码可能不能直接拷贝使用,是我原来写的老代码,你试着去看懂意思,简单的说就是修改和建立注册表的几个键值


Windows中所有的ODBC数据源在系统注册表中都有记载,因此只要编写相应的代码对注册表中的项目进行相应的修改即可。Windows中与ODBC相关的键,主要有下面几项:
1. HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER
记录所有已安装的ODBC驱动程序;
2. HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI
记录各种ODBC驱动程序的相关信息;
3. HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
记录各种数据源的类型;
4. HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
记录各种数据源的详细信息。
qqjj7758 2003-10-29
  • 打赏
  • 举报
回复
先找到程序用到的键
在安装程序时加入注册表键就OK了
例如:ASA的设置(ACCESS类似)
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\rail]
"Driver"="d:\\rail\\DBODBC7.DLL"
"UID"="dba"
"PWD"="sql"
"DatabaseFile"="d:\\rail\\data\\rail.db"
"DatabaseName"="rail"
"AutoStop"="yes"
"Integrated"="NO"
"Start"="d:\\rail\\dbeng7.exe -c 8m"

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"rail"="Adaptive Server Anywhere 7.0"
我用CREATEINSTALL PRO 很好用 你可以去下一个

qvsl 2003-10-29
  • 打赏
  • 举报
回复
对注册表不熟呀,就是要建立一个名字叫ttt的access的数据源,连接一个叫ttt的access
的数据库,具体应该怎么做呀???????谢谢
szpqq 2003-10-29
  • 打赏
  • 举报
回复
往注册表中写东西,当你在你自己的机器配置后,就把写入注册表的东西用代码写到别的机器中
qvsl 2003-10-29
  • 打赏
  • 举报
回复
不太明白,新手,能不能尽量说的详细一点,谢谢
cckk426 2003-10-29
  • 打赏
  • 举报
回复
你可以用数据管道将程序与库连好,再用Installshield来做一个安装文件,

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧