char szSQL[2048]={0};
   sprintf(szQSQL,"select count(*) AS Counts from mo1919_0504 where substring(usernumber,3,1)\='3' and (msgcontent like 'CF%' or msgcontent like 'HF%' or msgcontent like 'GPC%')
and substring (usernumber,3,5) in (select mobileseg from mobileseg where cityname='南通')
AND (substring(cmdtime, 1, 4) > '0401') AND (substring(cmdtime, 1, 4) < '0501')");
   为什么不能把这个字符串,全部拷进去?
   求其原因?
   谢谢!!!

解决方案 »

  1.   

    sprintf(szQSQL,"select count(*) AS Counts from mo1919_0504 where substring(usernumber,3,1)\='3' and (msgcontent like 'CF%' or msgcontent like 'HF%' or msgcontent like 'GPC%')
    and substring (usernumber,3,5) in (select mobileseg from mobileseg where cityname='南通')
    AND (substring(cmdtime, 1, 4) > '0401') AND (substring(cmdtime, 1, 4) < '0501')");这句写错了,你里面有好多%应该用%%表示。
      

  2.   

    char szSQL[2048]={0};
       sprintf(szQSQL, // 应该是szSQL写错了吧?
      

  3.   


    我的意思是:
        怎样能将那么长的字符,赋给szSQL数组?
      注:这是一条SQL语句,在查询分析器里,执行没问题。
      

  4.   

    strcpy可以,你上面的也可以,但关键是你写错了!
    在字符串中%是用%%来表示的!比如这句:
    msgcontent like 'CF%' 
    应该写成:
    msgcontent like 'CF%%' ,这样到了szSQL中才是msgcontent like 'CF%'