文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» PowerBuilder » mysql问题求救!请高手们指教!       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [原创] mysql问题求救!请高手们指教!  ( 查看:509  回复:8 )   
 
old_story
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 15
积分 9
阅读权限 20
注册日期 2008-3-10
最后登录 2008-4-22 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-10 18:21   标题:mysql问题求救!请高手们指教!
上一帖 |
本人第一次使用mysql5.0+powerbuilder9.0开发一个系统,但是现在遇到了一个问题,那就是mysql不支持select into,这样系统登陆的问题解决起来就很麻烦,至今没有找到好的办法,请高手们给出出主意!有没有其他的解决办法!
望指教!



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-3-10 18:211楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3032
精华 1
无忧币 5559
积分 4053
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-8-22 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-3-11 14:03 
不会吧,你代码怎么写的?
报什么错?



用户必读,51CTO积分系统调整通知
2008-3-11 14:032楼
[ 顶部 ]
 
old_story
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 15
积分 9
阅读权限 20
注册日期 2008-3-10
最后登录 2008-4-22 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-11 14:39 
不报错,SQLCA.SQLCODE返回值为-1,数据库连接没有问题,因为其他数据正常,停止使用SELECT INTO 后可以进行登录。
MYSQL自身不支持SELECT INTO这是官方说明中说明过的,但是我不明白的是在PB中的SELECT INTO应该是在PB本地进行的嵌入语句,在数据库端应该不会直译,也就是说在数据库端应该执行的是正常的SELECT语句,只不过是把取到的数据在PB中进行赋值变量,所以一直不明白为什么会这样!
还望高手指点!也希望适用过MYSQL+PB的兄弟们指教!



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-3-11 14:393楼
[ 顶部 ]
 
old_story
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 15
积分 9
阅读权限 20
注册日期 2008-3-10
最后登录 2008-4-22 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-11 17:00 
在应用对象的open()事件中对数据库连接进行了判断,而且能够正常弹出登录窗体,书名数据库连接是没有问题的。
If lnv_connectserv.of_ConnectDB ( ) = 0 Then
    Open ( w_dilems_login )
end if
登录窗体中的cb_1的clicked()代码如下:
int c_count = 0
select count(*) into :c_count from msfusrmi where userid = :sle_usrid.text and userpass = :sle_pass.text;

if c_count <= 0 then
    messagebox("错误信息","用户代码户密码错误,请重新输入!",StopSign!)
else
     close(parent)
     open(w_kongms_frame)
end if

sle_usrid为用户代码输入
sle_pass为用户密码输入
userid和userpass均为char类型。
经测试sqlca.sqlcode为-1,c_count值为0。数据库连接没有问题,因为绕开登录执行菜单上一个写好的并挂上了数据窗口的窗体,数据是正确的。
现在就不知道问题出在哪里。



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-3-11 17:004楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3032
精华 1
无忧币 5559
积分 4053
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-8-22 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-3-15 11:34 
检查:
sqlca.sqlerrtext,看看错误的内容

messagebox("提示",sqlca.sqlerrtext)



用户必读,51CTO积分系统调整通知
2008-3-15 11:345楼
[ 顶部 ]
 
old_story
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 15
积分 9
阅读权限 20
注册日期 2008-3-10
最后登录 2008-4-22 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-16 19:09 
SQLErrText的信息如下:
SQLSTATE = 37000
[MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from msfusrmi where userid =_latin1'admin' and
登录使用的登录名为‘admin’,在数据库中的msfusrmi中存在数据。
说明select into在数据库端就是有问题!

我将select语句中的count(*)改为select count(userid)后SQLErrText的错误信息如下,数据库端将count理解为函数。
SQLSTATE = S1000
[MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]FUNCTION dems.count does not exist

5楼的问题我不明白指的是什么,userid和userpass的数据类型均为char,sle中的应该是string,类型应该匹配。
还是没有找出问题。有谁使用过mysql+pb吗,请指教一下!



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-3-16 19:096楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3032
精华 1
无忧币 5559
积分 4053
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-8-22 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-3-17 09:02 
偶好像有点明白了

你的语句:select count(*) into :c_count from msfusrmi where userid = :sle_usrid.text and userpass = :sle_pass.text;

请问一下,c_count是如何定义的?该变量是什么类型的?



用户必读,51CTO积分系统调整通知
2008-3-17 09:027楼
[ 顶部 ]
 
old_story
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 15
积分 9
阅读权限 20
注册日期 2008-3-10
最后登录 2008-4-22 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-18 09:01 
c_count是int类型呀,你没看到吗?
int c_count = 0
select count(*) into :c_count from msfusrmi where userid = :sle_usrid.text and userpass = :sle_pass.text;
应该是什么类型?就是int类型吧?



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-3-18 09:018楼
[ 顶部 ]
 
vnsoft
新新人类  点击可查看详细



帖子 1
精华 0
无忧币 9
积分 1
阅读权限 20
来自 (保密)
注册日期 2007-1-12
最后登录 2008-4-21 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-4-21 20:49 
不知道是不是你不应该直接使用控件的属性,你将sle_...TEXT改为使用一个变量看看.



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2008-4-21 20:499楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号