导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

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

ljlj 2006-01-18 06:19:25
第一次试打包成EXE文件后,搜索之前贴子发现所说的DLL,都已经拷贝到程序所在的目录下。但是运行EXE就发现连不上SQL2000。
不知道少了什么文件。
...全文
259 点赞 收藏 21
写回复
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
问题都没说清楚
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

809

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告