有高手进来帮我解决这个动态数据库连接问题吗??急急急!!!

luo0022 2007-07-02 01:33:19
我通过SQLCA做了个动态的SQL数据库连接,我用的是PB8+SQLServer2K个人版,因为系统是XP。在DBprofiles里连接数据库成功,但是动态连接就不通了,不知道哪里出了错,高手来帮我看下哈.....
应用对象open事件里脚本如下:

string startupfile='文件名'

sqlca.DBMS = ProfileString (startupfile, "database", "dbms", "")
sqlca.database = ProfileString (startupfile, "database", "database", "")
sqlca.userid = ProfileString (startupfile, "database", "userid", "")
sqlca.dbpass = ProfileString (startupfile, "database", "dbpass", "")
sqlca.logid = ProfileString (startupfile, "database", "logid", "")
sqlca.logpass = ProfileString (startupfile, "database", "LogPassWord", "")
sqlca.servername = ProfileString (startupfile, "database", "servername", "")
sqlca.DBParm = profileString (startupfile, "database", "dbparm", "")
SQLCA.AutoCommit = false

Connect using SQLCA;
IF SQLCA.SQLCODE <> 0 THEN
MESSAGEBOX('提示','数据库连接失败,请稍后再试!')
RETURN
END IF
string ls_sql="SET QUOTED_IDENTIFIER ON"
EXECUTE IMMEDIATE :ls_sql;

If SQLCA.SQLCode <> 0 Then
MessageBox ("Cannot Connect to Database", SQLCA.SQLErrText )
return
End If

open(.....)

文件内容如下:

[Database]
DBMS=MSS Microsoft SQL Server 6.x
Database=数据库名
UserId=
DatabasePassword=
LogPassword=
ServerName=SQL服务器名
LogId=sa
Lock=
DbParm=StaticBind=0
Prompt=0
AutoCommit=1

没设密码的,SQL登陆是混合模式
有什么地方写错了吗??还是SQLServer是个人版的原因???系统和SQL都重装过问题还是没变。。。。。。
急啊~~~~~~谁来帮帮我哦,谢谢啦!!!
...全文
614 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
luo0022 2007-07-04
  • 打赏
  • 举报
回复
问题解决了........
是个很笨的问题.......string startupfile='文件名' 文件名错误,呵呵...多写了个.ini
让大家笑话啦,哈哈,不过在此还是先谢谢各位的帮助,特别是Paladin大哥的....这么晚了还耐心帮我解决了问题......非常感谢大家......就此结贴了
violinacl 2007-07-03
  • 打赏
  • 举报
回复
UserId = sa
luo0022 2007-07-03
  • 打赏
  • 举报
回复
通过查找资料估计2种可能:
1,缺少PB8的动态连接库文件,比如PBVM80.dll。不知为什么重装后还是没这几个文件,哪位大哥有麻烦传个给我上面有我的QQ或发我邮箱luo0022@163.com
2,可能XP不支持.ini动态连接路径。如果是这样就更头痛啦,谁知道怎样解决???
网上都没有解决办法,就连PB8的补丁都没的下,真的快对PB绝望啦!!!
谁来帮帮我啊!!!
菜鸟先飞888 2007-07-03
  • 打赏
  • 举报
回复
如果仅连接SQL数据库,可以省略一下,这样写
sqlca.DBMS = ProfileString (startupfile, "database", "dbms", "")
sqlca.database = ProfileString (startupfile, "database", "database", "")
sqlca.logid = ProfileString (startupfile, "database", "logid", "")
sqlca.logpass = ProfileString (startupfile, "database", "LogPassWord", "")
sqlca.servername = ProfileString (startupfile, "database", "servername", "")


ikgan 2007-07-03
  • 打赏
  • 举报
回复
是不是编译成了DLL或者只有个EXE?
luo0022 2007-07-03
  • 打赏
  • 举报
回复
楼上的JamesCui,麻烦把具体操作办法说下
JamesCui 2007-07-03
  • 打赏
  • 举报
回复
连接sqlserver 2005也存在这个问题,Dll会因为PB版本不同
JamesCui 2007-07-03
  • 打赏
  • 举报
回复
需要把数据库连接的几个动态连接库拷贝到程序目录中
luo0022 2007-07-03
  • 打赏
  • 举报
回复
问题找到了,但不知道怎么解决.........高手来帮帮忙!!谢谢
profileString ()函数无效.........取不到文件"database"节中的内容
如果我这样写又可以连接成功:
sqlca.DBMS=ProfileString(startupfile,"database","dbms","MSS Microsoft SQL Server 6.x")
sqlca.database=ProfileString(startupfile,"database","database","数据库名")
sqlca.logid=ProfileString(startupfile,"database","logid","sa")
sqlca.servername=ProfileString(startupfile,"database","servername","服务器名")
强行指定事务对象属性值,谁知道这是为什么???动态连接文件是.ini文件,是否在XP系统下不能用???还是格式错误??以下是.ini文件完整内容:
[Database]
DBMS=MSS Microsoft SQL Server 6.x
Database=数据库名
UserId=sa
DbPass=
LogId=sa
LogPass=
ServerName=服务器名
DbParm=0
StaticBind=0
Lock=
Prompt=
AutoCommit=1
[App]
AppName=
Ver=1.0

哪位高手有QQ,我发图给你帮我看看.........我的QQ号522753072
菜鸟先飞888 2007-07-02
  • 打赏
  • 举报
回复
建议不要用混合模式,呵呵,我喜欢加个密码
纸纸纸纸飞飞 2007-07-02
  • 打赏
  • 举报
回复
混合模式下UserId也有个值:sa
纸纸纸纸飞飞 2007-07-02
  • 打赏
  • 举报
回复
你从INI文件中要取的结点有:dbms,database,userid,dbpass,logid, LogPassWord, servername,dbparm
但你的INI文件中结点分别是:
DBMS,Database,UserId,DatabasePassword,LogPassword,ServerName,LogId
缺少LogPassword节点。。。
da21 2007-07-02
  • 打赏
  • 举报
回复
跟踪测试一下看看运行得到的各个变量值就知道了
da21 2007-07-02
  • 打赏
  • 举报
回复
会不会是你的ini文件有问题啊?
kelph 2007-07-02
  • 打赏
  • 举报
回复
跟什么电脑没关系吧,原因就是取值错误。

跟踪每个值结果是否正确就可以了
luo0022 2007-07-02
  • 打赏
  • 举报
回复
测试到这里就中断了
IF SQLCA.SQLCODE <> 0 THEN
MESSAGEBOX('提示','数据库连接失败,请稍后再试!')
RETURN
END IF
SQLCA.SQLCODE返回值不等于0所以连接数据失败
我在INI文件里也加入了LogPassword=
UserId=sa
但还是连接不上
在INI文件里LogPassword和LogPass是否相同??在PB脚本里是LogPass,INI文件里写成LogPassword能被调用???
还有什么办法???有谁试过SQL个人版动态连接成功的??我以前的老机子P3装WIN2000+SQLServer2000标准版+PB8就是这样动态连接的,现在换了双核电脑不支持WIN2000所以问题多多哦..............
有哪位高手来帮我解决下啊!!!连不上数据库后面的工作都没法开展了。

609

社区成员

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

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