mysql-MYSQL游标REPEAT循环后,无法得到字符串返回值。望指教,谢谢!

php中文网
发布: 2016-06-06 09:44:54
原创
1145人浏览过

mysql返回值delphi存储过程循环

我有一个数据表zq

+-------+--------+--------------+---------+---------+--------+---------+| zq_id | zq_dm  | zq_mc        | zqlx_id | fllx_id | jys_id | zq_cxhq |+-------+--------+--------------+---------+---------+--------+---------+|     1 | 000001 | 平安银行     |       4 |       9 |      1 |       1 ||     2 | 113001 | 中行转债     |       4 |       9 |      1 |       1 ||     3 | 113005 | 平安转债     |       4 |       9 |      1 |       1 ||     4 | 131800 | R-003        |       3 |       5 |      2 |       0 ||     5 | 131801 | R-007        |       3 |       7 |      2 |       0 ||     6 | 131802 | R-014        |       3 |       8 |      2 |       0 ||     7 | 131809 | R-004        |       3 |       6 |      2 |       0 ||     8 | 131810 | R-001        |       3 |       3 |      2 |       1 ||     9 | 131811 | R-002        |       3 |       4 |      2 |       0 ||    10 | 150124 | 建信50B      |       5 |      10 |      2 |       0 ||    11 | 510300 | 300ETF       |       2 |       2 |      1 |       0 ||    12 | 600893 | 航空动力     |       1 |       1 |      1 |       0 ||    13 | 601318 | 中国平安     |       1 |       1 |      1 |       1 ||    14 | 601872 | 招商轮船     |       1 |       1 |      1 |       1 |+-------+--------+--------------+---------+---------+--------+---------+
登录后复制

还有一个数据表jys

+--------+--------+-----------------------+| jys_id | jys_dm | jys_mc                |+--------+--------+-----------------------+|      1 | SH     | 上海证券交易所        ||      2 | SZ     | 深圳证券交易所        |+--------+--------+-----------------------+
登录后复制

我想将表zq中字段zq_cxhq为1的记录的zq_dm字段和对应的jys_dm提取出来组成字符串,所期望的结果应该是得到字符串"SH000001,SH113001,SH113005,SZ131810,SH601318,SH601872,"。

我的方法是:

Fotor AI Image Upscaler
Fotor AI Image Upscaler

Fotor推出的AI图片放大工具

Fotor AI Image Upscaler 73
查看详情 Fotor AI Image Upscaler
CREATE DEFINER=`root`@`localhost` PROCEDURE `routine_Sshq`(  OUT jyszqdm VARCHAR(100))BEGIN  DECLARE zqdm VARCHAR(45);    DECLARE jysdm VARCHAR(45);  DECLARE jyszq VARCHAR(100);  DECLARE done TINYINT(1) DEFAULT 0;  DECLARE cur_zqhq  CURSOR FOR SELECT zq_dm, jys_dm    FROM zq    LEFT JOIN jys    ON jys.jys_id = zq.jys_id    WHERE zq_cxhq = 1;  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  OPEN cur_zqhq;  REPEAT    FETCH cur_zqhq INTO zqdm, jysdm;    IF done = 0 THEN      SET jyszq = CONCAT(jyszq, jysdm, zqdm, ',');    END IF;  UNTIL done = 1 END REPEAT;  SET jyszqdm  = jyszq;END
登录后复制

在DELPHI XE2中,我将这个存储过程的返回值,赋值给Edit控件,但始终无法成功。
我将这个存储过程的最后一行改为: SET jyszqdm = 'abc'; 同样无法成功。
我怀疑是不是前面那个REPEAT循环没有结束?但又找不到原因。

本人是自学菜鸟,期望哪位前辈高手指教。万分感谢。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号