ASP中巧用Split()函数生成SQL查询语句的实例,splitsql


Split 程序代码

复制代码 代码如下:

<%attribs="商场名^^快餐店名^^报停名"
names=Split(attribs,"^^")
i=0
for each name in names
  response.write names(i)&"<br>"
  i=i+1
next
%>

程序拆分结果:
商场名
快餐店名
报停名

根据 Split 结果生成 SQL 语句

复制代码 代码如下:

<%attribs="商场名^^快餐店名^^报停名"
names=Split(attribs,"^^")
i=0
sql="select top 10 * from TableName where"
for each name in names
  if names(i)="商场名" then
    sql=sql+" or 商场 like '%"&names(i)&"%'"
  end if
  if names(i)="快餐店名" then
    sql=sql+" or 快餐店 like '%"&names(i)&"%'"
  end if
  if names(i)="报停名" then
    sql=sql+" or 快餐店 like '%"&names(i)&"%'"
  end if
  i=i+1
next
sql=sql+" Ordey by Id DESC"
sql=Replace(sql, "where or", "where")
response.write sql
%>

程序运行结果:

复制代码 代码如下:

select top 10 * from TableName where 商场 like '%商场名%' or 快餐店 like '%快餐店名%' or 快餐店 like '%报停名%' Ordey by Id DESC


asp中,对于sql语句中包含split的分离值的教

首先,在执行duis=split(dui,",") 之前,应考虑判断传来的值dui是否合格。如果为空,使用ubound()就会出错。
尽管你目前没有遇到此错误

其次,fzclbrs.open fzclbsql,conn,1,3 执行此句后,应判断fzclbrs是否为空(BOF或EOF)。你目前就是在此出了问题。
符合条件的记录集都没有,你对其执行fzclbrs("fzbs")="1" 和 fzclbrs.update,肯定就报错。

所以,用以下做判断过滤:
if not fzclbrs.eof then
fzclbrs("fzbs")="1"
fzclbrs.update
end if

程序是要写得严格些,尤其对传过来的参数的判断、循环语句条件、对数据库的操作等处,周密考虑。别怕麻烦。习惯了,思维就严谨拉。养成良好的习惯。
 

ASP中将SQL语句参数传递给函数,然后函数内执行查询的问题

数据库链接代码呢?
 

评论关闭