请教一下这个问题,关于分割字符串的问题

hanger1978 2003-11-21 03:22:13
我在一个表单里输入了"安全,质量,"四个字,两个逗号。现在我想把他们分割开成放到这里
abcd=split(request("recvgrp"),",")
然后我用
Set Rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from address,cp where address.cmp=cp.id and cp.comp in ('"&abcd&"') "
Rs.Open Sql,conn,1,1
为什么告诉我
类型不匹配

/asp/txl/iWeb2000/iSend-qf.asp,行0

遇到未处理的数据类型。
...全文
35 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kunyi 2003-11-22
  • 打赏
  • 举报
回复
for i=0 to ubound(abcd)-1
tempStr="'" & abcd(i) & "',"
tempStr=left(tempStr,len(tempStr)-1)
Set Rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from address,cp where address.cmp=cp.id and cp.comp in (" & tempStr & ") "
next
chhwang 2003-11-21
  • 打赏
  • 举报
回复
for
......
next

next的位置改一下
hanger1978 2003-11-21
  • 打赏
  • 举报
回复
各位老兄问题我找到了,可是怎么只有一条记录啊
select * from address,cp where address.cmp=cp.id and cp.comp in ('质量')
select * from address,cp where address.cmp=cp.id and cp.comp in ('安全')这条怎么没有啊
hanger1978 2003-11-21
  • 打赏
  • 举报
回复
我现在程序这么改得
abcd=split(request("recvgrp"),",")
for i=0 to ubound(abcd)-1
tempStr="'" & abcd(i) & "',"
next
tempStr=left(tempStr,len(tempStr)-1)
Set Rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from address,cp where address.cmp=cp.id and cp.comp in (" & tempStr & ") "
response.Write(sql)
Rs.Open Sql,conn,1,1
可是程序出现如下错误:
select * from address,cp where address.cmp=cp.id and cp.comp in ('质量')
Microsoft VBScript 编译器错误 错误 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
/asp/txl/iWebSMS2000/iSMSSend-qf.asp,行41
hanger1978 2003-11-21
  • 打赏
  • 举报
回复
我按照你这么做的,可是提示告诉我
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/asp/txl/iWebSMS2000/iSMSSend-qf.asp,行40
这个40行指的是
Rs.Open Sql,conn,1,1
ixingarden 2003-11-21
  • 打赏
  • 举报
回复
不能这样的啊,
肯定数据类型出错!
abcd是数组啊,怎么可以这样用呢?
还是换一种方法吧!
wlm_lm 2003-11-21
  • 打赏
  • 举报
回复
当然出错了,改成这样:
Set Rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from address,cp where address.cmp=cp.id and cp.comp in ('"&request("recvgrp")&"') "
Rs.Open Sql,conn,1,1

用不着拆分开在IN的。
hjbwt 2003-11-21
  • 打赏
  • 举报
回复
这样肯定不行,你得abcd是个数组,怎么能匹配呢?可以这样:
for i=0 to ubound(abcd)-1
tempStr="'" & abcd(i) & "',"
next
tempStr=left(tempStr,len(tempStr)-1)
Set Rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from address,cp where address.cmp=cp.id and cp.comp in (" & tempStr & ") "
hanger1978 2003-11-21
  • 打赏
  • 举报
回复
是我说的不明白吗

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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