用vb调用下面的存储过程时为什么提示 从数据类型 nvarchar 转换为numeric 时出错  ???  谢谢USE [SOE006]
GO
/****** 对象:  StoredProcedure [dbo].[AddzjSubsidiary]    脚本日期: 05/13/2010 09:41:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER   Procedure [dbo].[AddzjSubsidiary]  
@ID int,
@Vouchtype nvarchar(50),
@CCode nvarchar(50),
@CustomerCode nvarchar(50),
@DepartCode nvarchar(50),
@EmployeeCode nvarchar(50),
@DDate smalldatetime,
@DispatcharCode nvarchar(50),
@Number decimal(18, 6),
@HaierCode nvarchar(50),
@Marker nvarchar(50),
@Checker nvarchar(50),
@Accounter nvarchar(50),
@AccDate smalldatetime,
@jhdate smalldatetimeAS  
  insert into zjSubsidiary 
 select @id,@vouchtype,@ccode,@CustomerCode, @DepartCode, @EmployeeCode, @DDate, @DispatcharCode, @HaierCode, b.providercode,@jhdate,a.productcode,cast(a.number*@number*(b.fquota/100) as decimal(18, 6)),
a.price,cast(a.money*@number*(b.fquota/100) as decimal(18, 6))  ,a.fvagquantity,cast(a.sumfvag*@number*(b.fquota/100) as decimal(18, 6)),@Marker, @Checker, @Accounter, @AccDate from ProductStructures a inner join venandinv b on a.productcode=b.productcode
where a.haiercode=@haiercode

解决方案 »

  1.   


    SELECT A.number,b.fquota,A.[MONEY],A.SUMFVAG
    from ProductStructures a inner join venandinv b on a.productcode=b.productcode
    where a.haiercode=@haiercode AND ISNUMERIC(A.[NUMBER])*ISNUMERIC(b.fquota)*ISNUMERIC(A.[MONEY])*ISNUMERIC(A.SUMFVAG)=0看看有没有输出,有的话就是表中有非法记录,没有的话估计就是输入参数中有非法值
      

  2.   

    vb的调用如下: 帮忙看看有否问题 谢谢Dim cmdTEMP As New ADODB.Command
        Dim parTEMP As New ADODB.Parameter
        Dim RsTemp As New ADODB.Recordset
        Dim i As Integer
        Dim QM As Currency
      
        For i = 1 To VFG1.Rows - 2
            With cmdTEMP
                .ActiveConnection = P_connection
                .CommandType = adCmdStoredProc
                .CommandText = "addCTSubsidiary"
           
            '参数1 主表id
            Set parTEMP = .CreateParameter("ID", adBigInt, adParamInput, , RSMain!Id)
            .Parameters.Append parTEMP
            '参数2 单据类型
            Set parTEMP = .CreateParameter("Vouchtype", adVarWChar, adParamInput, 50, "01")
            .Parameters.Append parTEMP
            '参数3 单据号
            Set parTEMP = .CreateParameter("CCode", adVarWChar, adParamInput, 50, TxtFaHuoDanNumber.Text)
            .Parameters.Append parTEMP
            '参数4 CustomerCode
            Set parTEMP = .CreateParameter("CustomerCode", adVarWChar, adParamInput, 50, TxtCustomer.Tag)
            .Parameters.Append parTEMP
            '参数5 DepartCode
            Set parTEMP = .CreateParameter("DepartCode", adVarWChar, adParamInput, 50, TxtBM.Tag)
            .Parameters.Append parTEMP
            '参数6 业务员
            Set parTEMP = .CreateParameter("EmployeeCode", adVarWChar, adParamInput, 50, TxtYWY.Tag)
            .Parameters.Append parTEMP
            '参数7 单据日期
            Set parTEMP = .CreateParameter("DDate", adDate, adParamInput, , DTPChKRQ.Value)
            .Parameters.Append parTEMP
            '参数8 DispatcharCode
           
             Set parTEMP = .CreateParameter("DispatcharCode", adVarWChar, adParamInput, 50, TxtChKLB.Tag)
            .Parameters.Append parTEMP
            '参数9 number
            Set parTEMP = .CreateParameter("Number", adNumeric, adParamInput, , Val(VFG1.TextMatrix(i, Con_Col_Num)))
                parTEMP.Precision = 18
                parTEMP.NumericScale = 6
            .Parameters.Append parTEMP
          
            '参数10 haiercode
            Set parTEMP = .CreateParameter("haiercode", adVarWChar, adParamInput, 50, VFG1.TextMatrix(i, Con_Col_Code))
            .Parameters.Append parTEMP
            '11 Marker
             Set parTEMP = .CreateParameter("Marker", adVarWChar, adParamInput, 50, TxtZhDR.Text)
            .Parameters.Append parTEMP
            '12
            Set parTEMP = .CreateParameter("Checker", adVarWChar, adParamInput, 50, P_UserName)
            .Parameters.Append parTEMP
            '13Accounte
            Set parTEMP = .CreateParameter("Accounter", adVarWChar, adParamInput, 50, P_UserName)
            .Parameters.Append parTEMP
            '18 AccDate
            Set parTEMP = .CreateParameter("AccDate", adDate, adParamInput, , Date)
            .Parameters.Append parTEMP
            '19 jhdate
             Set parTEMP = .CreateParameter("jhDate", adDate, adParamInput, , CDate(VFG1.TextMatrix(i, Con_Col_BHDate)))
            .Parameters.Append parTEMP
            '共 8 个参数
            '
            
            Set RsTemp = .Execute
            Set cmdTEMP = Nothing
        End With
        
    Next