PB生成EXE文件后,能运行。但在登录窗口录入用户名时连不上SQL--请教!!!

ljlj 2006-01-18 06:19:25
第一次试打包成EXE文件后,搜索之前贴子发现所说的DLL,都已经拷贝到程序所在的目录下。但是运行EXE就发现连不上SQL2000。
不知道少了什么文件。
...全文
321 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljlj 2006-02-06
  • 打赏
  • 举报
回复
各位朋友,新年好。
加上MESSAGEBOX,问题还是一样。 我会继续关注此问题,给用户使用现只好折中处理,在用户的电脑上编译打包,安装PB9的运行环境先交付用户使用。
假设我发现问题的所在,会发贴说一声。

谢谢大家的支持。
zaodt 2006-02-05
  • 打赏
  • 举报
回复
如果用了 DataStore ,则在编译时需要资源文件,如果没有的话,也会出现类似的问题。
lucylu0726 2006-02-05
  • 打赏
  • 举报
回复
我觉得应该是dll文件路径有问题吧!
关注。。
zoe217 2006-02-04
  • 打赏
  • 举报
回复
少了连接数据库的dll文件,不需要在程序中加代码,只需要将.dll拷贝到exe的同一目录即可。若需要详细的dll文件,可以联系我,zoe217@tom.com
bjuwy 2006-02-04
  • 打赏
  • 举报
回复
如果你安装了MS SQLSERVER的话,请在程序目录下将与MS SQLSERVER相关的DLL文件删除
有了还打不开程序
wxwx7911 2006-02-02
  • 打赏
  • 举报
回复
我也认为是你的 li_dir =GetCurrentDirectory() 有问题,设置一个messagebox 看看
大师归来 2006-01-25
  • 打赏
  • 举报
回复
如果都拷过去了,还不行的话,那就是你程序有BUG了,找一下吧,应该不难的!
twht 2006-01-25
  • 打赏
  • 举报
回复
会不会是你的当前目录有问题。。。
你试着在程序里加上一句话:
messagebox("li_dir",li_dir)

看看是不是你指定的那个li_dir

另外就是试着看看,看看每个SQLCA的参数有没有错。

以前我好像碰到过这事情,
ljlj 2006-01-25
  • 打赏
  • 举报
回复
好的,。。。。
  • 打赏
  • 举报
回复
同意 :我是一只小小小小小菜鸟

可能是你的当前路径有问题
比如你发送了快截方式到桌面,而你从桌面的快截方式运行的话,那么当前路径是桌面地址了,而不是你的EXE文件的路径
bcfxbcfx 2006-01-23
  • 打赏
  • 举报
回复
没遇见过
ljlj 2006-01-23
  • 打赏
  • 举报
回复
问题我虽然没有解决,我把这段时间尝试的方法再和大家交流一下。
1)第一次取INI文件,代码是这样的:
open
// Profile hzkcs
li_dir =GetCurrentDirectory() //取当前系统目录
//
SQLCA.DBMS = profilestring(li_dir+"\kcs.ini",'KCS','SQLCA.DBMS','none')
SQLCA.Database = profilestring(li_dir+"\kcs.ini",'KCS','SQLCA.Database','none')
SQLCA.ServerName = profilestring(li_dir+"\kcs.ini",'KCS','SQLCA.ServerName','none')
SQLCA.LogId = profilestring(li_dir+"\kcs.ini",'KCS','SQLCA.LogId','none')
SQLCA.LogPass = profilestring(li_dir+"\kcs.ini",'KCS','SQLCA.LOgPass','none')
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
//
SQLCA.LOCK = 'RU'
connect;
open(w_welcome)

kcs.ini
[KCS]
SQLCA.DBMS = MSS Microsoft SQL Server'
SQLCA.Database = 'kcs' //原是 hzkcs,这里之所以用‘kcs'是我故意的,用来测试。
SQLCA.ServerName = 'hj001' //原是 hj
SQLCA.LogId = 'sa'
SQLCA.LogPass = ''

这次的问题就是放在没安装PB9运行环境的电脑上,将Database 和 ServerName 改成这台电脑的数据库名与服务器名。运行出现英文: Transaction not connected。我当时试着用这样的方法排除: 在这台电脑上安装PB9的运行环境,就可以。 然后我将PB9卸裁再运行,又不行了。-------判断应该是少了什么文件。 然后就找之前的贴与查找相关的资料,一一比较.dll看看少了哪个就补哪个。问题没得到解决, 就上CSDN发贴了。

之后,也想到可能是我取INI的方法出错了。就用一个死方法将:
SQLCA.Database = 'kcs' 与 SQLCA.ServerName = 'hj001' 写上我的源程序,再打包。然后将打包好的文件覆盖hj001。 试运行,结果问题照旧。------这时候我想。我的W_WELCOME窗口,是用一个EXTERNAL 建立的临时数据窗口。 用来接受用户输入的编号:/显示姓名:/输入密码:。 我自己认为这个临时的数据窗口没和SQL有联系,是不是这里少了什么文件。
临时数据窗口需要PB9的哪个 .DLL支持呢?不知是不是?





qlyscf 2006-01-23
  • 打赏
  • 举报
回复
Transaction对象的连接参数有问题吧?逐项检查一下.
既然能正常编译,环境应该是没问题的.
wjdn 2006-01-22
  • 打赏
  • 举报
回复
支持楼上说法,再看看连接参数吧!
filix2006 2006-01-21
  • 打赏
  • 举报
回复
问题出在数据库连接,你在获取INI 文件数据库信息出的错,仔细看一下SQLCA的各个参数
lxzyz 2006-01-21
  • 打赏
  • 举报
回复
我觉得既然程序目录里的dll都不缺应该不是程序目录的问题,试一下在系统目录里找问题,还有SQL2000
hbdkfk 2006-01-20
  • 打赏
  • 举报
回复
关注一下
顶一个
ljlj 2006-01-20
  • 打赏
  • 举报
回复
哦。问题具体是这样:

刚开始的时候,我设想用.INI 来记录“SQL 的数据库名与机器名”。在PB运行时读取.INI。
这样可以根据用户机器的实际情况修改后使用。 程序在源代码情况下可以。

编译之后,在有PB运行平台的电脑上运行编译之后的.EXE,也是正常的。 下面列出.DLL清单:
PBVM90.DLL
LIBJCC.DLL
PBDWE90.DLL
PBRTC90.DLL
PBFNT90.INI
PBLAB90.INI
PBTRA90.DLL
PBODB90.DLL
PBODB90.INI
NTWDBLIB.DLL
......
后面我发现拷贝到没PB9运行环境的电脑上运行。我写的登录窗口出来了。
编号:_____
姓名:_____
密码:_____

确定 取消

这说明窗口能运行。但我输入编号,本应该自动弹出姓名,光标移到密码栏。这是正确步骤。
现出现的问题时:输入编号按回车,出现英文:
Transaction not connected

我将D:\PROG...\SYSBASE\SHARD\POWERBUILDER\*.DLL 通通拷贝到 编译后的程序目录,还是一样。
啊 。。。问题没解决。
不知少了什么文件。请指点。




jimmyxc 2006-01-19
  • 打赏
  • 举报
回复
sql,odbc需要的DLL和文件丢在系统目录下试试
rishengw 2006-01-19
  • 打赏
  • 举报
回复
问题都没说清楚
加载更多回复(1)

1,108

社区成员

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

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