Problem with Datetime variables - Conversion failed when converting datetime from character string.

  • Hello All,

    I'm facing a problem with the below query that I'm using in an SSRS 2005 report for MS CRM 4.0:

    ----------

    declare @sql nvarchar(4000)

    declare @fromdate datetime, @todate datetime

    set @fromdate = '6/16/2008'

    set @todate = '7/22/2008'

    set @sql = N'declare @dealid uniqueidentifier, @date1 datetime, @date2 datetime; Select top 1 @dealid = new_dealid from (select * from Filterednew_deal where new_name = ''Boulevard Al Areen Real Estate'') Deals; '

    + 'set @date1 = ' + @fromdate + '; set @date2 =, ' + @todate + '; '

    + 'exec sp_PlannedVsActualActivities @dealid, @date1, @date2'

    exec(@SQL)

    when i try to run the above query it produce the following error:

    Msg 241, Level 16, State 1, Line 5

    Conversion failed when converting datetime from character string

    I tried all the acceptable formats of datetime but it didn't work. I also tried all the possible CONVERT and CAST methods with no luck.

    ---------

    when I replace the @fromdate and @todate with their actual values in the query, it works and run the stored procedure and display the required results. below is the new query:

    declare @sql nvarchar(4000)

    declare @fromdate datetime, @todate datetime

    set @fromdate = '6/16/2008'

    set @todate = '7/22/2008'

    set @sql = N'declare @dealid uniqueidentifier, @date1 datetime, @date2 datetime; Select top 1 @dealid = new_dealid from (select * from Filterednew_deal where new_name = ''Boulevard Al Areen Real Estate'') Deals; '

    + 'set @date1 =''6/16/2008'';set @date2 = ''7/22/2008'';'

    + 'exec sp_PlannedVsActualActivities @dealid, @date1, @date2'

    exec(@SQL)

    ----------

    I tried also to exclude the @sql from the query and kept the @fromdate and @todate in the query by removing the string concatenations, it works and run the stored procedure and display the required results. below is the new query:

    declare @fromdate datetime, @todate datetime

    set @fromdate = '6/16/2008'

    set @todate = '7/22/2008'

    declare @dealid uniqueidentifier, @date1 datetime, @date2 datetime;

    Select top 1 @dealid = new_dealid from (select * from Filterednew_deal where new_name = 'Boulevard Al Areen Real Estate') Deals;

    set @date1 = @fromdate; set @date2 = @todate;

    exec sp_PlannedVsActualActivities @dealid, @date1, @date2

    ----------

    Any ideas on handling this situation, on solving this problem?

    It's so urgent; your help is really appreciated.

  • Try the yyyy/mm/dd date format.

    set @fromdate = '2008/06/16'

    set @todate = '2008/07/22'

    Edit:

    Oh, and this is also a problem

    'set @date1 = ' + @fromdate + '; set @date2 =, ' + @todate + '; '

    + 'exec sp_PlannedVsActualActivities @dealid, @date1, @date2'

    You need to cast the 2 date variables to varchar in order to concat them into the string. Maybe this...

    'set @date1 = ' + CAST(@fromdate AS VARCHAR(26)) + ';

    set @date2 =, ' + CAST(@todate AS VARCHAR(26)) + '; '

    Come to think of it, why are you using dynamic SQL at all? This should work just fine

    declare @fromdate datetime, @todate datetime, @dealid uniqueidentifier

    set @fromdate = '6/16/2008'

    set @todate = '7/22/2008'

    Select top 1 @dealid = new_dealid from Filterednew_deal

    where new_name = 'Boulevard Al Areen Real Estate';

    exec sp_PlannedVsActualActivities @dealid, @fromdate , @todate

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Hi Gail,

    thanks for the reply.

    i tried the date format that you suggsted but it still producing the same error.

    i have already mentioned that i tried all the possible formats of date.

    the @formdate and @todate are in reality datepicker parameters; i have just added the following section to the query to test it in SQL Manager:

    declare @fromdate datetime, @todate datetime

    set @fromdate = '2008/06/16'

    set @todate = '2008/07/22'

    anyway, you can notice that the last query of my initial post that it's the same query; i have just removed the @sql variable, the single quotes and the + signs that were used for concatenation.

    when i run this query it works fine and display the required results.

    I think the problem is caused by the string concatenation of @sql variable.

    do you have any idea how we can solve this issue?

  • See my edited post.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Hi again Gail,

    Sorry, I didn't notice that you edited your previous post.

    I tried what you suggested in your edited post with a little change to the syntax and it's now working like charm.

    you need to replace 'set @date1 = ' + CAST(@fromdate AS VARCHAR(26)) + '; with 'set @date1 = ''' + CAST(@fromdate AS VARCHAR(26)) + ''';. below is the final query:

    declare @sql nvarchar(4000)

    declare @fromdate datetime, @todate datetime

    set @fromdate = '6/16/2008'

    set @todate = '7/22/2008'

    set @sql = N'declare @dealid uniqueidentifier, @date1 datetime, @date2 datetime; Select top 1 @dealid = new_dealid from (select * from Filterednew_deal where new_name = ''Boulevard Al Areen Real Estate'') Deals; '

    + 'set @date1 = ''' + CAST(@fromdate AS VARCHAR(26)) + '''; set @date2 = ''' + CAST(@todate AS VARCHAR(26)) + '''; '

    + 'exec sp_PlannedVsActualActivities @dealid, @date1, @date2'

    exec(@SQL)

    thank you Gail; I spent yesterday the whole day to find a solution for this problem with no luck.

    thanks again for your help; it's really appreciated.

  • Pleasure.

    I'm still unclear why you're using dynamic SQL at all. There doesn't seem to be a need.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • Hi there,

    Just thought I would post an alternative solution to a similar issue I was having with moving UK date styles in MS Access Strings to MS SQL Server 2005.

    I was getting that bloody error even if I separated the date out into parts and concatenated it back together in yyyy-mm-dd ISO Format, so I used a INTO statement and then converted the DATEFORMAT back to "normal" and then ran the CAST on the ISO Standard format.

    Worked a treat.

    SET DATEFORMAT dmy

    SELECT id.intInspectionDetailsID,

    CONVERT(varchar(10), CAST(DATEPART(YEAR, wp.DateInspected) as varchar) + '/' + CAST(DATEPART(MONTH, wp.DateInspected) as varchar) + '/' + CAST(DATEPART(DAY, wp.DateInspected) as varchar), 126) as DateInspectedConv

    INTO #Temp

    FROM xxx.dbo.WP_Vemco_Poles wp INNER JOIN xxxUAT.dbo.Span sp ON wp.vchSpanRefVegZoneYear = sp.vchSpanRefVegZoneYear

    INNER JOIN InspectionDetails id ON sp.intSpanID = id.intSpanID

    SET DATEFORMAT mdy

    --SELECT CAST(CONVERT(varchar, DateInspectedConv, 126) as datetime)

    UPDATE id

    SET id.Date = CAST(CONVERT(varchar, tmp.DateInspectedConv, 126) as datetime)

    FROM #Temp tmp INNER JOIN InspectionDetails id ON id.intInspectionDetailsID = tmp.intInspectionDetailsID

    DROP TABLE #Temp

  • Gila & FN thanks for the posting, but I'm having a similar but continuing to be odd problem with a date conversion.

    My problem arises when I include the INSERT INTO section of my procedure listed below.

    The dates when selected through TSQL all represent appropriate dt forms/formatting without giving an error.

    So here's the nutshell overview of what's below:

    I am building a fact structure called cube_shipped which is a culmination of orders booked and those shipped for a given monthly cycle. In lieu of running heavy bulk loading of the year's records I'm cycling through the source tables by customer and date range (for reasons beyond this posting.) I know there are always different ways of solving a problem but this works and had worked for several months until the users wanted more data, thus the wider ranging and date driver.

    I set the variables I'll need to loop through the source records than then select the records given the parameters I need then try to insert them.

    ONLY when I use the INSERT portion does the procedure bail/fail (line 100 is the entry line of the INSERT INTO statement) with the error message:

    (448 row(s) affected)

    (0 row(s) affected)

    (0 row(s) affected)

    (0 row(s) affected)

    Msg 241, Level 16, State 1, Procedure usp_whse_cube_shipped_step1, Line 100

    Conversion failed when converting datetime from character string.

    /******************************************************/

    ALTER PROCEDURE [dbo].[usp_whse_cube_shipped_step1]

    as

    /*******************************************************

    Author: JBJ

    Date:3/09/2010

    Notes: Revised to expand by including new columns and dropping old

    (see requirements doc from sales)

    NOTE: Always validate a backup has completed prior to major data changes

    Date:09/06/2010 - CONVERTED FROM OLD VB.6 PROGRAM !!!

    Date: 12/12/2010 - Need to revise loading to speed up and break down the process

    - added several more indices and the customer and date driven parameters

    - to the procedure

    ********************************************************/

    DECLARE @fromdate DATETIME

    DECLARE @todate DATETIME

    DECLARE @loopfrom DATETIME

    DECLARE @loopto DATETIME

    DECLARE @cust_cnt INT

    DECLARE @dateloop INT

    DECLARE @C INT -- loop counter customers

    DECLARE @d INT -- loop counter date ranges by month

    DECLARE @custid VARCHAR(30)

    SET @fromdate = (SELECT convert(varchar(10),'20100801',112))

    SET@todate= (SELECT convert(varchar(10),GETDATE(),112))

    SET@dateloop= (SELECT DATEDIFF(mm,@fromdate,@todate))

    SET@d = 1

    BEGIN

    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CUBE_SHIPPED_UPD]'))

    CREATE TABLE [dbo].[CUBE_SHIPPED_UPD](

    [SYSTEM_ID] [varchar](15) NULL,

    [CUSTOMER_ID] [varchar](15) NULL,

    [CUST_ORDER_ID] [varchar](15) NULL,

    [PRODUCT_CODE] [varchar](15) NULL,

    [COMMODITY_CODE] [varchar](15) NULL,

    [PART_ID] [varchar](30) NULL,

    [INVOICE_DATE] [datetime] NULL,

    [BRAND] [varchar](15) NULL,

    [TERRITORY] [varchar](15) NULL,

    [REPID] [varchar](80) NULL,

    [STATUS] [char](1) NULL,

    [UNIT_PRICE] [decimal](20, 6) NULL,

    [AMOUNT] [decimal](15, 2) NULL,

    [QUANTITY] [decimal](14, 4) NULL,

    [COST] [decimal](14, 4) NULL,

    [QUOTE_ID] [varchar](80) NULL,

    [APEX_ACCESS_CODE] [varchar](50) NULL,

    [APEX_DISCOUNT] [decimal](6, 3) NULL,

    [SHIP_TO_ADDR_NO] [int] NULL,

    [SHIP_TO_ID] [varchar](20) NULL,

    [PRICING_IND] [varchar](80) NULL,

    [FABRICATED] [char](1) NULL,

    [PURCHASED] [char](1) NULL,

    [DESIRED_SHIP_DATE] [datetime] NULL,

    [PROMISE_DATE] [datetime] NULL,

    [PART_ID_COMP] [varchar](100) NULL,

    [ORDER_ID_COMP] [varchar](100) NULL,

    [SHIP_TO_COMP] [varchar](100) NULL,

    [PART_ID_DESCRIPT] [varchar](100) NULL,

    [ADDR_1] [varchar](50) NULL,

    [ADDR_2] [varchar](50) NULL,

    [CITY] [varchar](50) NULL,

    [STATE] [varchar](50) NULL,

    [ZIPCODE] [varchar](50) NULL,

    [COUNTRY] [varchar](50) NULL,

    [REPORT_GROUP] [varchar](50) NULL,

    [CATEGORY] [varchar](50) NULL,

    [FAMILY] [varchar](50) NULL,

    [CHANNEL] [varchar](50) NULL,

    [GL_REVENUE_ACCT] [varchar](50) NULL,

    [ACTIVE_FLAG] [varchar](1) NULL,

    [PROGRAM_GROUP_ID] [varchar](80) NULL,

    [CUST_ORDER_LINE_NO] [varchar](15) NULL

    )

    TRUNCATE TABLE [dbo].[CUBE_SHIPPED_UPD]

    END

    IF object_id('tempdb..#tmp_customer_list') is not null DROP TABLE [#tmp_customer_list]

    SELECT DISTINCT IDENTITY(INT,1,1) AS cust_num,customer_id INTO #tmp_customer_list FROM CUSTOMER_ORDER O

    WHERE O.ORDER_DATE >= '20100801' AND O.CUSTOMER_ID NOT LIKE 'AMEB%' AND O.CUSTOMER_ID NOT LIKE 'MEX-%' AND O.CUSTOMER_ID NOT LIKE 'SAF-%'

    ORDER BY O.CUSTOMER_ID

    SET @cust_cnt = @@ROWCOUNT

    BEGIN

    SET @C = 1

    --SET @C = 168 -- for testing a specific customer

    WHILE @C <= @cust_cnt

    BEGIN

    SET @custid = (select customer_id from #tmp_customer_list where cust_num = @C)

    SET @d = 1

    WHILE @d <= @dateloop

    BEGIN

    SET @loopfrom = (SELECT DATEADD(DD,0,DATEADD(MM,DATEDIFF(MM,0,DATEADD(MM, -((@dateloop+1)-@d),@todate)),0)))

    SET @loopto = (SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,@loopfrom)+1,0)))

    --select @C, @custid, @fromdate, @todate, @dateloop, @d, @cust_cnt, @loopfrom, @loopto,

    --BEGIN TRANSACTION

    INSERT INTO CUBE_SHIPPED_UPD

    ([SYSTEM_ID]

    ,[CUSTOMER_ID]

    ,[CUST_ORDER_ID]

    ,[PRODUCT_CODE]

    ,[COMMODITY_CODE]

    ,[PART_ID]

    ,[INVOICE_DATE]

    ,[BRAND]

    ,[TERRITORY]

    ,[REPID]

    ,[STATUS]

    ,[UNIT_PRICE]

    ,[AMOUNT]

    ,[QUANTITY]

    ,[COST]

    ,[QUOTE_ID]

    ,[APEX_ACCESS_CODE]

    ,[APEX_DISCOUNT]

    ,[SHIP_TO_ADDR_NO]

    ,[SHIP_TO_ID]

    ,[PRICING_IND]

    ,[FABRICATED]

    ,[PURCHASED]

    ,[DESIRED_SHIP_DATE]

    ,[PROMISE_DATE]

    ,[PART_ID_COMP]

    ,[ORDER_ID_COMP]

    ,[SHIP_TO_COMP]

    ,[GL_REVENUE_ACCT]

    ,[PART_ID_DESCRIPT]

    ,[CUST_ORDER_LINE_NO]

    )

    -- CUBE_SHIP COLUMNS NOT INCLUDED INITIALLY

    /******************************************

    ,[PART_ID_DESCRIPT]

    ,[ADDR_1]

    ,[ADDR_2]

    ,[CITY]

    ,[STATE]

    ,[ZIPCODE]

    ,[COUNTRY]

    ,[REPORT_GROUP]

    ,[CATEGORY]

    ,[FAMILY]

    ,[CHANNEL]

    ,[ACTIVE_FLAG]

    ,[PROGRAM_GROUP_ID]

    ********************************************/

    SELECT -- @custid, @loopfrom, @loopto, @fromdate, @todate, @dateloop, @cust_cnt, @d, @C, --DISTINCT

    O.SYSTEM_ID

    ,O.CUSTOMER_ID

    ,O.ID order_id

    ,isnull(OL.PRODUCT_CODE,'None') as product_code

    ,isnull(OL.COMMODITY_CODE,'None') as commodity_code

    ,isnull(OL.PART_ID, 'None') as part_id

    ,isnull(P.DESCRIPTION,'None') as part_id_descript

    ,R.POSTING_DATE as invoice_date

    ,isnull(P.USER_1,isnull(ABP.brandcode,'not defined')) AS brand

    ,isnull(O.TERRITORY,'unknown') as territory

    ,isnull(O.SALESREP_ID,'not defined') salesrep

    ,O.STATUS ORDER_STATUS

    ,OL.UNIT_PRICE

    ,RL.AMOUNT INVOICED_AMOUNT

    ,RL.QTY INVOICE_qty

    ,isnull((IT.ACT_MATERIAL_COST + IT.ACT_LABOR_COST + IT.ACT_BURDEN_COST + IT.ACT_SERVICE_COST),isnull((P.UNIT_MATERIAL_COST + P.UNIT_LABOR_COST + P.UNIT_BURDEN_COST + P.UNIT_SERVICE_COST),0)) as cost

    ,isnull(OL.USER_6,'not found') as quote_id

    ,isnull(OL.USER_8,'not found') as apex_access_code

    ,OL.TRADE_DISC_PERCENT as apex_discount

    ,isnull(O.SHIP_TO_ADDR_NO,'0') as ship_to_addr

    ,isnull(O.SHIPTO_ID,'None') as shipto_id

    ,O.USER_3 as pricing_ind

    ,isnull(P.FABRICATED,'X')as fabricated

    ,isnull(P.PURCHASED,'X')as purchased

    ,O.DESIRED_SHIP_DATE as desired_ship_date

    ,O.PROMISE_DATE as promise_date

    ,(O.SYSTEM_ID + '_' + OL.PRODUCT_CODE + '_' + OL.COMMODITY_CODE + '_' + OL.PART_ID) as part_id_comp

    ,(O.SYSTEM_ID + '_' + O.ID) as order_id_comp

    ,(O.SYSTEM_ID + '_' + O.CUSTOMER_ID + '_' + convert(varchar(30),isnull(O.SHIP_TO_ADDR_NO,'0')) + '_' + convert(varchar(30),isnull(O.SHIPTO_ID,'None'))) as ship_to_comp

    ,ISNULL(OL.GL_REVENUE_ACCT_ID,ISNULL(RL.GL_ACCOUNT_ID, PR.REV_GL_ACCT_ID)) AS GL_ACCT_ID

    ,OL.LINE_NO

    --

    --,O.ORDER_DATE

    --,OL.ORDER_QTY

    --,OL.TOTAL_AMT_ORDERED

    --,R.INVOICE_ID

    --,R.STATUS INVOICE_STATUS

    --,RL.LINE_NO

    --,S.PACKLIST_ID

    --,S.SHIPPED_DATE

    --,SL.LINE_NO

    --,SL.SHIPPED_QTY

    --,SL.USER_SHIPPED_QTY as shipped_quantity

    --

    FROM CUSTOMER_ORDER O

    INNER JOIN CUST_ORDER_LINE OL ON O.SYSTEM_ID = OL.SYSTEM_ID

    AND O.ID = OL.CUST_ORDER_ID

    INNER JOIN SHIPPER S ON O.SYSTEM_ID = S.SYSTEM_ID

    AND O.ID = S.CUST_ORDER_ID

    INNER JOIN SHIPPER_LINE SL ON S.CUST_ORDER_ID = SL.CUST_ORDER_ID

    AND OL.LINE_NO = SL.LINE_NO

    AND S.PACKLIST_ID = SL.PACKLIST_ID

    INNER JOIN RECEIVABLE R ON O.SYSTEM_ID = R.SYSTEM_ID

    AND O.CUSTOMER_ID = R.CUSTOMER_ID

    INNER JOIN RECEIVABLE_LINE RL ON R.INVOICE_ID = RL.INVOICE_ID

    AND O.SYSTEM_ID = RL.SYSTEM_ID

    AND OL.CUST_ORDER_ID = RL.CUST_ORDER_ID

    AND OL.LINE_NO = RL.LINE_NO

    AND SL.LINE_NO = RL.PACKLIST_LINE_NO

    AND SL.PACKLIST_ID = RL.PACKLIST_ID

    LEFT OUTER JOIN PART P ON OL.SYSTEM_ID = P.SYSTEM_ID

    AND OL.PART_ID = P.ID

    LEFT OUTER JOIN PRODUCT PR ON OL.SYSTEM_ID = PR.SYSTEM_ID

    AND P.SYSTEM_ID = PR.SYSTEM_ID

    AND P.PRODUCT_CODE = PR.CODE

    LEFT OUTER JOIN INVENTORY_TRANS IT ON O.SYSTEM_ID = IT.SYSTEM_ID

    AND O.ID = SL.CUST_ORDER_ID

    AND OL.LINE_NO = SL.CUST_ORDER_LINE_NO

    AND SL.SYSTEM_ID = IT.SYSTEM_ID

    AND SL.TRANSACTION_ID = IT.TRANSACTION_ID

    LEFT OUTER JOIN AHI_APEX_BRAND_PRODUCTCOMMODITY ABP ON isnull(OL.PRODUCT_CODE,' ') = isnull(ABP.PRODUCTCODE,' ')

    AND isnull(OL.COMMODITY_CODE,' ') = isnull(ABP.COMMODITYCODE, ' ')

    AND OL.SYSTEM_ID = ABP.[SID]

    --

    WHERE R.POSTING_DATE >= @loopfrom

    AND R.POSTING_DATE <= @loopto

    AND O.CUSTOMER_ID = @custid -- used for isolating records for verification

    AND O.ID NOT LIKE 'MEX%'

    AND OL.PRODUCT_CODE NOT LIKE 'IC%'

    GROUP BY

    O.SYSTEM_ID

    ,O.CUSTOMER_ID

    ,O.ID

    ,isnull(OL.PRODUCT_CODE,'None')

    ,isnull(OL.COMMODITY_CODE,'None')

    ,isnull(OL.PART_ID, 'None')

    ,isnull(P.DESCRIPTION,'None')

    ,R.POSTING_DATE

    ,isnull(P.USER_1,isnull(ABP.brandcode,'not defined'))

    ,O.TERRITORY

    ,O.SALESREP_ID

    ,O.STATUS

    ,OL.UNIT_PRICE

    ,RL.AMOUNT

    ,RL.QTY

    ,isnull((IT.ACT_MATERIAL_COST + IT.ACT_LABOR_COST + IT.ACT_BURDEN_COST + IT.ACT_SERVICE_COST),isnull((P.UNIT_MATERIAL_COST + P.UNIT_LABOR_COST + P.UNIT_BURDEN_COST + P.UNIT_SERVICE_COST),0))

    ,isnull(OL.USER_6,'not found')

    ,isnull(OL.USER_8,'not found')

    ,OL.TRADE_DISC_PERCENT

    ,isnull(O.SHIP_TO_ADDR_NO,'0')

    ,isnull(O.SHIPTO_ID,'None')

    ,O.USER_3

    ,isnull(P.FABRICATED,'X')

    ,isnull(P.PURCHASED,'X')

    ,O.DESIRED_SHIP_DATE

    ,O.PROMISE_DATE

    ,(O.SYSTEM_ID + '_' + OL.PRODUCT_CODE + '_' + OL.COMMODITY_CODE + '_' + OL.PART_ID)

    ,(O.SYSTEM_ID + '_' + O.ID)

    ,(O.SYSTEM_ID + '_' + O.CUSTOMER_ID + '_' + convert(varchar(30),isnull(O.SHIP_TO_ADDR_NO,'0')) + '_' + convert(varchar(30),isnull(O.SHIPTO_ID,'None')))

    ,ISNULL(OL.GL_REVENUE_ACCT_ID,ISNULL(RL.GL_ACCOUNT_ID, PR.REV_GL_ACCT_ID))

    ,OL.LINE_NO

    --COMMIT

    SET @d = @d + 1 -- @dateloop + 1

    END

    SET @C = @C + 1 -- @cust_cnt + 1

    END

    END

    /***************************************************/

    Boy do I feel like a marooon! :Whistling:

    I found my problem in the code. In my haste I failed to follow coding rule 101:

    Always make sure your insert list is matched by your select list: Failure will give all sorts of data formatting errors when data is not lined up!!

    Just looking hard and long at something won't make it work

    Sorry for the confusion!!: w00t:

  • Thanks Gail, your solution help me a lot for which I was struggling last 3 days 🙂

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply