设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3461|回复: 10
打印 上一主题 下一主题

[其它] [求助]ACCESS存储过程中的参数传递问题

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-19 05:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大哥大姐,小弟在使用存储过程的时候遇到问题了,搞了N久没解决,问了N多人没人知道,全靠大家了,5555~~~

好了,废话不说了。

ACCESS中的存储过程的参数用逗号分割,但如果在参数中本身包含逗号,就惨了,本来一个参数变成了2个,而最后一个参数丢失,郁闷死了。

请问在ACCESS中有没有转义字符,让逗号不要那么可爱?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-7-19 06:56:00 | 只看该作者
试试iif(right(参数,1)=",",left(len(参数)-1) & "*",参数)
3#
发表于 2005-7-19 07:45:00 | 只看该作者
"123"&","&"456"
4#
 楼主| 发表于 2005-7-19 17:22:00 | 只看该作者
先谢谢二位了,软件兄的方法我不明白,ACCESS中的存储过程好像不支持逻辑判断,金坚兄的方法尝试失败,提示:语法错误 (操作符丢失) 在查询表达式 '123"&"' 中。可能是我问题没讲清楚,我做ASP.NET+ACCESS开发,用C#语言。ACCESS中存储过程的参数传递格式为:“存储过程名 变量1,变量2,变量3.....”,变量之间用逗号隔开。当参数传递给ACCESS时,ACCESS根据逗号自动分离各个参数,现在地的变量1中有一个逗号,这样原来的变量1变成了变量1和变量2,后面的变量依次往后推,使得变量无法正确传递,我现在的做法是将半角的逗号转化成全角,再传递给ACCESS,但这不是一个好办法,特此像各位请教高招。小弟在此谢过了!!
5#
发表于 2005-7-19 19:14:00 | 只看该作者
“我现在的做法是将半角的逗号转化成全角”,我觉得这样变通蛮好,参数完全控制在你手中,把用户的输入处理一下再传递很正常。
6#
 楼主| 发表于 2005-7-19 21:35:00 | 只看该作者
但是有时候用户全角的逗号就显示不出来了,因为在输出的时候全部会变成半角;如果不转换,那输出的时候其他符号都是半角的,而只有逗号是全角的,看着别扭;最麻烦的是比如用户密码中存在半角逗号,这样一转化就麻烦了,因为用户他并不知道这回事,若提示用户不能用逗号,那感觉太差了。还望各位大哥指点一二。
7#
发表于 2005-7-20 00:06:00 | 只看该作者
?
8#
 楼主| 发表于 2005-7-20 04:05:00 | 只看该作者
哪位大哥救救我啊?
9#
发表于 2005-7-20 17:49:00 | 只看该作者
我没有用过存储过程,用mdb作后台,有一函数:FUNCTION fixQuotes( theString )

  fixQuotes = REPLACE( theString, "'", "''" )

END FUNCTION就str=.........conn.exec str只要把单引号处理一下,别的没问题。
10#
 楼主| 发表于 2005-7-20 18:46:00 | 只看该作者
谢谢tz-chf兄。你这种方法不用存储过程,直接将SQL语句传给ACCESS时是个好主意。但若用存储过程就行不通,存储过程会报语法错误。错误提示:字符串的语法错误 在查询表达式 '123',456' 中。

其中外面的两个单引号是系统表示字符串,中间的单引号是我添加的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-11 04:53 , Processed in 0.091819 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表