我在APPlication中开始处加上如下代码,在PB下运行时没问题,怎么编译后执行exe文件后老提示连不??为什么,请赐教!!

wfzn 2002-03-19 09:48:46
我在APPlication中开始处加上如下代码,在PB下运行时没问题,怎么编译后执行exe文件后老提示连不??为什么,请赐教
SQLCA.DBMS = "ODBC"
SQLCA.Database = "EAS Demo DB V3"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V3;UID=dba;PWD=sql'"

connect using sqlca;

if Sqlca.sqlcode<0 then
MessageBox("error","CAnt connect database")
halt
end if

OPen(w_...)
...全文
143 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerlxg 2002-03-20
  • 打赏
  • 举报
回复
问题还没解决吗?看程序你是用ODBC连接数据库的,把PB\share目录下的那个动态连接库拷到EXE文件目录下应该可以了,还有检查EXE文件目录入有哪些动态连接库,贴出来大家帮你看看
programmerwei 2002-03-20
  • 打赏
  • 举报
回复
如果你确定在pb的profile中能连上,看在你的程序用到什么对象来确定需要的dll文件但pbvm60.dll是必须的,例如:数据窗口  pbdwo60.dll ole对象
pbell60.dll ODBC库 pbodb60.dll oracle8接口 pbo7360.dll 更详细的查onlinebook.祝好运!
paradisehell 2002-03-20
  • 打赏
  • 举报
回复
用odbc就是会有这样的情况,缺少dll阿,dll也不要全拷贝,跟你数据库有关的就行了阿,
要么就要用第三方的打包工具了,不过不容易找,
toutou 2002-03-20
  • 打赏
  • 举报
回复
给你一个例子,到别的机器上也能用
首先取得当前程序所在的路径:

ls_Buffer=Space(255)
GetCurrentDirectoryA(255,ls_Buffer)//(api函数)

RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","AutoStop", RegString!,'yes')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","Databasefile", RegString!,ls_Buffer+'\xsbb.db')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","Databasename", RegString!,'xsbb')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","driver", RegString!,ls_Buffer+'\wod50t.dll')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","PWD", RegString!,'sql')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","UID", RegString!,'dba')
RegistrySet("HKEY_current_user\Software\odbc\odbc.ini\xsbb","start", RegString!,ls_Buffer+'\dbeng50.exe -c 8m')
当然首先要把相应的数据库支持所需的DLL拷到程序目录,连同你的数据库文件
然后再写你的那几句
think_js 2002-03-20
  • 打赏
  • 举报
回复
你的问题有两个方面,一个就是上面的dll的问题,还有一个就是你编译的程序中是用sqlwhere数据库,应该首先连上数据库,如果不起数据库是问题是没有办法解决的。
jiazhij 2002-03-20
  • 打赏
  • 举报
回复
同意flyerlxg(飞鸟)的意见。到别的机器上别忘了配置odbc.否则还是用不了
mars884813 2002-03-19
  • 打赏
  • 举报
回复
建议 wfzn() 同志看一看PB的与封装及分发相关的资料。
wfzn 2002-03-19
  • 打赏
  • 举报
回复
上面老兄说的所有dll我看有30多M ,
不会都拷过去吧,如果我要把这人EXE文件在别的机器上用,
拷这么多文件会很麻烦的,请指教!!
autumn_fox 2002-03-19
  • 打赏
  • 举报
回复
将pb\shared\目录下的所有.dll拷到
exe文件所在目录或者系统目录下!!!
NetCobra 2002-03-19
  • 打赏
  • 举报
回复
把错误信息贴出来看看
whfred 2002-03-19
  • 打赏
  • 举报
回复
把与你这个PB版本相关的DLL文件COPY到编译过后的目录中,就肯定OK了!
flyerlxg 2002-03-19
  • 打赏
  • 举报
回复
将PBODB70.DLL和PBODB70.INI拷贝到EXE文件所在目录试下
zc_ncepu 2002-03-19
  • 打赏
  • 举报
回复
对,肯定是缺少DLL
gungod2000 2002-03-19
  • 打赏
  • 举报
回复
如果连上了会打开一个sql anywhere 的窗口,你的有吗?
wfzn 2002-03-19
  • 打赏
  • 举报
回复
楼上的老师我已经完全编译了一次,还是这样。
to : misslyy(礼拜二)
你说的缺少动态链是什么意思,我该怎么解决,
谢了!!!!
misslyy 2002-03-19
  • 打赏
  • 举报
回复
是缺少动态链啊
zc_ncepu 2002-03-19
  • 打赏
  • 举报
回复
你完全编译一次
wfzn 2002-03-19
  • 打赏
  • 举报
回复
我就是从哪里边copy过来的,,,
一编译成EXE后就联不上了
zc_ncepu 2002-03-19
  • 打赏
  • 举报
回复
你把DB Profile里头的东西拷过来覆盖最上头的那一片,应该没问题的
或者先检查ODBC是否能连接数据库。。。

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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