sql语句中使用参数而不是字符串合并

解决方案 »

  1.   

    你可以试一试如下的语句:
    首先你要用INSTR函数找到单引号的位置然后将字符串分解:
    oldpos=1
    i=1
    while newpos<>0 then 
       newpos=instr(oldpos,strcol1,"'")
       strcol1(i)=mid(strcol1,oldpos,newpos-oldpos)
       oldpos=newpos+1
       i=i+1
    loop
    strcol1=strcol1(1)
    for j = 2 to i-1
       strcol1=strcol1 + "''" + strcol1(i)
    next
    strSQL="insert into temp(col1,col2) values('" + strcol1 + "','" + strcol2 + "')"
    adoCmd.ActiveConnection  =adoCnn
    adoCmd.CommandText = strSQL
    adoCmd.CommandType = adCmdText
    adoCmd.Execute
    当然如果每一个字符串中都有类似的情况你就要每一个都要处理,不过处理字符串不会有多少时间上的开销的,所以对效率不会有太大影响
      

  2.   

    不好意思有点问题,字符串处理应该如下:
    oldpos = 1
    newpos = 1
    i = 1
    Do While newpos <> 0
      newpos = InStr(oldpos, strcol1, "'")
      If newpos <> 0 Then
         strcol11(i) = Mid(strcol1, oldpos, (newpos - oldpos))
       Else
         strcol11(i) = Mid(strcol1, oldpos)
       End If
      oldpos = newpos + 1
      i = i + 1
    Loop
    strcol1 = strcol11(1)
    For j = 2 To i - 1
      strcol1 = strcol1 + "''" + strcol11(j)
    Next
      

  3.   

    我的这个处理是针对SQL SERVER的,老兄应该可以得分吧,给点鼓励吧
      

  4.   

    在sql server里面代替"'"用两种方法!第一是
    用'' 表示'就是说在语法里面 ''个表示一个'
    第二你可以用char()来转化!
    oracle里面也可以这样!如何阿!