代码咋倒了。 Kill "C:\SQLTB.dat"
strSQL = "exec master..xp_cmdshell 'bcp YBage..tb_ic out C:\SQLTB.dat -S127.0.0.1 -Usa -Pby123456 -w'"
    With Rs
        .Close
        .LockType = adLockPessimistic
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .Open strSQL
 End With
strSQL = "exec master..xp_cmdshell 'bcp ICClient..tb_ic in C:\SQLTB.dat -S127.0.0.1 -Usa -Pby68533462 -w'"
        With Rs
            .Close
            .LockType = adLockPessimistic
            .CursorLocation = adUseClient
            .CursorType = adOpenKeyset
            .Open strSQL
        End With
        Rs.MoveLast
        While IsNull(Rs(0)) Or Trim(Rs(0)) = ""
            Rs.MovePrevious
        Wend
        If Left(Rs(0), 5) = "Error" Then
            DownLoadData = False
            MsgBox "数据下载出错!请联系系统管理员!", vbInformation, "提示"
            Exit Function
        End If
    Kill "C:\SQLTB.dat"

解决方案 »

  1.   

    就是说,在查询分析器中执行你的bcp导入语句,看是否正常.
      

  2.   

    bcp是异步执行的,就是说,你的程序执行完了,bcp导入处理还没完成,而你的程序又删除了C:\SQLTB.dat,所以只导入的部分数据,你试试不删除,过一会儿去查询数据库,看数据是否正常.
      

  3.   

    我看了,我去掉结束时的Kill "C:\SQLTB.dat"。导入的数据,也是一大半数据。而且永远是7169条。但是我看了,那些导不入的都在里面。
      

  4.   

    查询分析器中导入没问题,证明你的SQL及语句都没有写错啊.难道VB有问题?
      

  5.   

    --试试改用:BULK INSERT 表 FROM 'C:\SQLTB.dat'
    WITH (DATAFILETYPE = 'widechar')
      

  6.   

    用你的方法:Server: Msg 7399, Level 16, State 1, Line 1
    OLE DB provider 'STREAM' reported an error. The provider did not give any information about the error.
    The statement has been terminated.