各位好!我有两个程序都出现了两个好奇怪的问题。有一个是这样的提示错误:
Line 1: Icorrect syntax near 'Y'.
另一个是:
Line 1: Icorrect syntax near ','.程序基本是这样的:从一个数据库里把数据转到别的数据库去。If Not rsH.EOF Then    
    Do While Not rsH.EOF strSQLM = strSQLM & Chr(13) & "insert into ecImpPOD(LineItemNo,PartNo_BY,ProductName,ProductSpec,OrderQty,OrderQtyUnit,DeliveryDate,UnitPrice,LineItemAmt,DeliveryQty,Re,SendID,RecvID,E_FROM,E_DATE,E_TIME,T_COMP,eboKey1,PartNo_SU) values(1,'2','3','4',5,'6',2004/4/,7,8,9,'123','公司別代號','公司別代號','2',2003/3/3,2,'公司別代號','3','2')" rsH.MoveNext
    Loop
    End If
conn.CursorLocation = adUseClient
conn.Open strconn
com.ActiveConnection = conn
com.CommandText = strSQLM
com.ExecuteSQL 语句我在查询分析器试过了没问题,但在VB整体就出现了这个错误!
那两个错是什么意思啊?谢谢!

解决方案 »

  1.   

    有一个是这样的提示错误:
    Line 1: Icorrect syntax near 'Y'.
    另一个是:
    Line 1: Icorrect syntax near ','.
    ________________________
    第一个应该是说在“Y”附近有语法错误
    第二个“,”附近有语法错误。
      

  2.   

    1。你的 这个 DeliveryDate数据类型是日期把 可你的值是 2004/4/   --插入时 应该是  2004/4/3'   2。  2003/3/3     ----插入时 应该是  '2003/3/3'
    日期加‘’
      

  3.   

    SQL语法错误,具体情况视你的代码而定,从你代码来看,组合成的SQL语句错了。可能原因:
    strSQLM = strSQLM & Chr(13) & "insert into ecImpPOD(LineItemNo,PartNo_BY,ProductName,ProductSpec,OrderQty,OrderQtyUnit,DeliveryDate,UnitPrice,LineItemAmt,DeliveryQty,Re,SendID,RecvID,E_FROM,E_DATE,E_TIME,T_COMP,eboKey1,PartNo_SU) values(1,'2','3','4',5,'6',2004/4/,7,8,9,'123','公司別代號','公司別代號','2',2003/3/3,2,'公司別代號','3','2')"1.将Chr(13)换为VBcrlf
    2.每条INSERT后加 分号(;)
    3.2004/4/   改为  '2004-4-1'
      

  4.   

    还有一点就是它的错误提示都是指向 com.Execute 这一句。我想可能是SQL 错了,但我用insert into ecImpPOD(LineItemNo,PartNo_BY,ProductName,ProductSpec,OrderQty,OrderQtyUnit,DeliveryDate,UnitPrice,LineItemAmt,DeliveryQty,Re,SendID,RecvID,E_FROM,E_DATE,E_TIME,T_COMP,eboKey1,PartNo_SU) values(1,'2','3','4',5,'6',2004/4/,7,8,9,'123','公司別代號','公司別代號','2',2003/3/3,2,'公司別代號','3','2') 在查询分析器里用没错啊!谢谢!
      

  5.   

    在后面加一个分号试一下
    strSQLM = strSQLM & Chr(13) & "insert into ecImpPOD(LineItemNo,PartNo_BY,ProductName,ProductSpec,OrderQty,OrderQtyUnit,DeliveryDate,UnitPrice,LineItemAmt,DeliveryQty,Re,SendID,RecvID,E_FROM,E_DATE,E_TIME,T_COMP,eboKey1,PartNo_SU) values(1,'2','3','4',5,'6',2004/4/,7,8,9,'123','公司別代號','公司別代號','2',2003/3/3,2,'公司別代號','3','2');"
      

  6.   

    还有就是对wolfhero(小炉子)说的你也可以检查一下
    如果都不行的话,你就把程序改为
    conn.CursorLocation = adUseClient
    conn.Open strconn
    If Not rsH.EOF Then    
        Do While Not rsH.EOF strSQLM =  "insert into ecImpPOD(LineItemNo,PartNo_BY,ProductName,ProductSpec,OrderQty,OrderQtyUnit,DeliveryDate,UnitPrice,LineItemAmt,DeliveryQty,Re,SendID,RecvID,E_FROM,E_DATE,E_TIME,T_COMP,eboKey1,PartNo_SU) values(1,'2','3','4',5,'6',2004/4/,7,8,9,'123','公司別代號','公司別代號','2',2003/3/3,2,'公司別代號','3','2')"
    conn.execute strsqlm
     rsH.MoveNext
        Loop
        End If
      

  7.   

    建议楼主好好看看T-SQL的联机帮助