pb发布后还要连接数据库

我用powerbuilder做了个学生成绩管理系统,用creatinstall2003发布后,还弹出连接数据库,问题出在哪里了,怎么解决啊?急用!大家帮帮我吧!在线等着。... 我用powerbuilder做了个学生成绩管理系统,用creatinstall2003发布后,还弹出连接数据库,问题出在哪里了,怎么解决啊?急用!大家帮帮我吧!在线等着。
我的是个单机版的,用的是一个ASA DATABASE 的数据库,创建的是adaptive server anywhere 的数据源,就是发布后,仍要连数据库,正常的是发布后,就可以安装,独立使用了,可我的不行,拿到另一个机器上,就连不上数据库了。是不是少什么文件啊。多谢你的帮忙,再给解释一下吧!高手。
展开
 我来答
百度网友9514fc051
2008-11-29 · TA获得超过1920个赞
知道小有建树答主
回答量:849
采纳率:85%
帮助的人:400万
展开全部
你的这个应用是基于哪种数据库呢?

是单机版的(如SQLAnywhere)还是网络版的(例如局域网里的SQLServer、Sybase数据库服务器)?

这两种我都做过一些,包括基于Sybase的网络版的档案管理、基于SQLAnywhere的一些毕业设计,而且主程序都是用PB开发的,你需要详细说明你的情况。

如果是基于SQLAnywhere的,并且在本机可以用、打包后连不了数据库、或在其他机器安装后无法连接数据库的问题,我最初也遇到过,解决的办法是:

在主应用里(程序的入口处)写一些代码,主要用来:
1、获取数据库的路径,并指定连接它
2、在注册表里插入新键,用于设置数据库的连接参数(程序安装后初次使用时创建)

说起来挺简单,但做起来比较麻烦

因为不知道你的具体情况,就没有必要详细说了。
----------------------------------------------------------------------

修改答复如下:

找了一个以前的应用,是给一个学生写的“小区监控系统”(早期编写的,PB版本是6.5、数据库是SQLAnywhere5.5)

以下的部分,是程序入口处(主应用main.pbl的open()事件)的一段代码,就是用来指定连接数据库的:

string currentdir //定义变量,用于取得程序所在的路径
currentdir=Space(256)
GetCurrentDirectoryA(256,currentdir) //系统函数,准备取路径

string s_value_drive,s_value_start
s_value_drive=currentdir+"\anywhere\wod50t.dll"
s_value_start=currentdir+"\anywhere\dbeng50.exe"

string ls_ODBC1="HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources"
RegistrySet(ls_ODBC1,'MONITOR','Sybase SQL Anywhere 5.0')

string ls_ODBC2="HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\MONITOR"
RegistrySet(ls_ODBC2,'AutoStop','yes')
RegistrySet(ls_ODBC2,'DatabaseFile',currentdir+'\MONITOR.DB')
RegistrySet(ls_ODBC2,'DatabaseName','MONITOR')
RegistrySet(ls_ODBC2,'Driver',s_value_drive)
RegistrySet(ls_ODBC2,'PWD','sql')
RegistrySet(ls_ODBC2,'Start',s_value_start)
RegistrySet(ls_ODBC2,'UID','dba')
SQLCA.DBMS = profilestring("MONITOR.ini","database","DBMS","")
SQLCA.DBParm = profilestring("MONITOR.ini","database","dbparm","")
SQLCA.AutoCommit = false

connect using sqlca;
if sqlca.sqlcode<>0 then
messagebox('','数据库连接失败,请检查相关设置')
else
open(w_main)
open(w_login)
end if

----------------------------------------------------------------------
另外,代码里涉及的MONITOR.ini,是我程序目录里的一个INI配置文件,它的内容是:
[DATABASE]
DBMS=ODBC
dbparm=Connectstring='DSN=MONITOR'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式