代码如下
str6 = "insert into yuanshi01(xuhao,riqi,shijian,zhujiao,beijiao,opc,dpc,dianlu,cic,jieguo,xiangying,shichang,col013)values('" + ss1 + "','" + ss2 + "','" + ss3 + "','" + ss4 + "','" + ss5 + "','" + ss6 + "','" + ss7 + "','" + ss8 + "','" + ss9 + "','" + ss10 + "','" + ss11 + "','" + ss12 + "','" + ss13 + "')"
cmd1.ActiveConnection = conn
cmd1.CommandType = adCmdText
cmd1.CommandText = str6
cmd1.Execute提示我的sql语句过长,好像是sql命令不能超过128个字符,有什么办法解决?

解决方案 »

  1.   

    直接用conn来执行试试:str6 = "insert into ......"
    conn.Execute str6
      

  2.   

    那只有分开了阿
    先inster一半再inster另外一半喽
      

  3.   

    放到 SQL 的查询分析器里去执行看有没有错误
      

  4.   

    放到 SQL 的查询分析器里去执行看有没有错误
    没有错误!
    但是在VB里面使用就不行。
    分开insert,不就insert 成2行了吗
      

  5.   

    把str6打印到立即窗口,把打印出来的sql语句放到查询分析器里去执行看看是不是有错误str6 = "insert into yuanshi01(xuhao,riqi,shijian,zhujiao,beijiao,opc,dpc,dianlu,cic,jieguo,xiangying,shichang,col013)values('" + ss1 + "','" + ss2 + "','" + ss3 + "','" + ss4 + "','" + ss5 + "','" + ss6 + "','" + ss7 + "','" + ss8 + "','" + ss9 + "','" + ss10 + "','" + ss11 + "','" + ss12 + "','" + ss13 + "')"
    Debug.Print str6
      

  6.   

    前面的定义为
    strline1 = "1        2006-06-11 08:59:59    13387192819          3544119            JZ联通IGW  JZ电信GW1  13     22     [16H]计费应答次数(     707                 52            "
    ss1 = Mid(strline1, 1, 9)
    ss2 = Mid(strline1, 10, 11)
    ss3 = Mid(strline1, 21, 12)
    ss4 = Mid(strline1, 33, 21)
    ss5 = Mid(strline1, 54, 21)
    ss6 = Mid(strline1, 75, 11)
    ss7 = Mid(strline1, 86, 11)
    ss8 = Mid(strline1, 97, 7)
    ss9 = Mid(strline1, 104, 7)
    ss10 = Mid(strline1, 111, 21)
    ss11 = Mid(strline1, 131, 12)
    ss12 = Mid(strline1, 150, 14)
    ss13 = Mid(strline1, 160, 2)如果改为,则执行没有问题
    ss1 = "1234"
    ss2 = "2345"
    ss3 = "3456"
    ss4 = "4567"
    ss5 = "5678"
    ss6 = "6789"
    ss7 = "7890"
    ss8 = "8901"
    ss9 = "9012"
    ss10 = "0123"
    ss11 = "11234"
    ss12 = "22345"
    ss13 = "33456"不知道为什么
      

  7.   

    定义多个字符串变量使用 execute (strSQL1+strSQL2+strSQL3+...)来完成...还有:sql命令是可以超过128个字符的.
      

  8.   

    或者使用recordset.addnew+recordset.update来完成
    这里假定rs是一个Ado.recordset
    rs.Addnew
    rs(0)=trim(text1)文本框内容
    rw(1)=trim(text2)
    ......
    rs.update
      

  9.   

    在记录的字段很多的情况下,我一直都是这样做的。这样做的好处是:省去了生成连接字符串的过程(连得麻烦),最后UPDATE一下就成了,而且代码的可读性要高很多。
      

  10.   

    你把ss1到ss13的值都打印出来,看看是否都正确:
    ......
    ss1 = Mid(strline1, 1, 9)
    ......
    ss13 = Mid(strline1, 160, 2)
    Debug.Print ss1
    ......
    Debug.Print ss13
      

  11.   

    呵呵,我检查了一下,发现是列宽不对,所以将中文字符导入到sql是出错,将列宽改为char(50)就可以了!
    谢谢大家!