问大家一个问题 我连接sql 数据库 其他的地方都好 就是执行一个存取过程 老是超时, 我在查询分析器里面运行 这个存取过程 又是很正常的  这是怎么会死
回事
我的环境是 vs2008+mssql2005 +微软企业库

解决方案 »

  1.   

    你的存储过程要执行多久?尝试设置ConnectionTimeOut试试
      

  2.   

    应该和ConnectionTimeOut 没关系 我就是调用一个存取过程的时候出问题
    这个存取过程调用了一个自定义函数 我把这个自定应函数 去掉后 就没有问题了
    代码如下CREATE PROCEDURE CarVehicleData_tbl_GetMaxData
    @C_ID int
     AS  
     
    --   declare @begin_date datetime
    -- declare @end_date datetime
    -- select @begin_date = getdate()

    SELECT 
     @c_ID as C_ID,CDP_Part as CSN_Part, b.CSN_dataOriginal as CSN_NumberDataOriginal
         , c.CSN_dataOriginal as  CSN_StatusData
         ,b.CSN_Updatetime   as CSN_NumberUpdateTime 
         ,c.CSN_Updatetime as CSN_StatusDataUpdateTime
     FROM CarModelDataParts_tbl a
     cross apply  GetNewCarData(@C_ID, Cdp_Part  , 0) b
     cross apply  GetNewCarData(@C_ID, Cdp_Part  , 1) c  
     where cdp_fmodel in ( select [C_FactoryModelCode] from  car_tbl where c_id =@c_id ) and cdp_isdel=0 and cdp_isdata=1
    --  select @end_date = getdate()
    -- select datediff(ms,@begin_date,@end_date) as '用时/毫秒'
    GO  Create FUNCTION GetNewCarData
    (
     @cid int,
     @part int,
     @type int
    )
    RETURNS  @temptable   table   (CSN_Data   varchar(Max),CSN_DataOriginal   varchar(Max),CSN_DataByte   varbinary(Max), CSN_UpdateTime datetime) 
    AS
    BEGIN
    insert   into   @temptable  select top 1 CSN_Data,CSN_DataOriginal,CSN_DataByte,CSN_UpdateTime from 
    CarVehicleData_tbl where C_ID=@cid and CSN_Part =@part and  CSN_Type=@type order by CSN_UpdateTime desc  return END
      

  3.   

    我把  cross apply  GetNewCarData(@C_ID, Cdp_Part  , 0) b
         cross apply  GetNewCarData(@C_ID, Cdp_Part  , 1) c  
    去掉 就正常了 但是我在查询分析器里面 单独调用 GetNewCarData  或者整个调用着存取过程 都没有问题