Home Forums SQL Server 7,2000 T-SQL BCP host-files must contain at least one column RE: BCP host-files must contain at least one column

  • Hi all,

    Still not figured out this problem with BCP.

    I'm using a table variable here not a temp table. The SP code I'm using is below. Can anyone see anything in there that would cause problems with BCP to work?

    CREATE procEDURE [dbo].[spStockDespatches] (

    @Company varchar(2),

    @Location varchar(6),

    @Warehouse varchar(6)

    ) AS

    BEGIN TRANSACTION

    declare @DETAILS table(

    Line varchar(400),

    AdviceNoteNumber int,

    LineID char(1)

    )

    DECLARE @Line VARCHAR(400)

    DECLARE @Seperator CHAR(1)

    DECLARE @HEADINGCHARACTER CHAR(1)

    DECLARE @RECORDCHARACTER CHAR(1)

    DECLARE @FOOTCHARACTERCHAR(1)

    DECLARE @DISPLAYWAREHOUSE VARCHAR(6)

    DECLARE @ADVICENOTENUMBER INT

    SET @Seperator = '|'

    SET @HEADINGCHARACTER = 'F'

    SET @RECORDCHARACTER = 'R'

    SET @FOOTCHARACTER= 'T'

    SELECT @DISPLAYWAREHOUSE = CASE @WAREHOUSE

    WHEN '17' THEN 'SHILL'

    ELSE @WAREHOUSE

    END

    DECLARE csrLine CURSOR FOR

    SELECT LINE FROM @DETAILS

    DECLARE csrADVICENOTENUMBER CURSOR FOR

    SELECT DISTINCT ADVICENOTENUMBER FROM @DETAILS WHERE LineID = @RECORDCHARACTER

    SET NOCOUNT ON

    INSERT INTO @DETAILS

    SELECT(@HEADINGCHARACTER + @Seperator + @DISPLAYWAREHOUSE + @Seperator + CONVERT(VARCHAR(20),getdate(),105) + @Seperator + CONVERT(varchar(20),getdate(),108)),0,@HEADINGCHARACTER

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    INSERT INTO @Details

    SELECT LTRIM(@RECORDCHARACTER + @Seperator +

    RTRIM(ANH.Company) + @Seperator +

    RTRIM(ANh.Location) + @Seperator +

    RTRIM(ANH.Warehouse) + @Seperator +

    CONVERT(VarCHar(20),ANH.AdviceNoteCreationDate,103) + ' ' + CONVERT(VarCHar(20),ANH.AdviceNoteCreationDate,108) + @Seperator +

    RTRIM(ANH.SalesOrderNumber) + @Seperator +

    RTRIM(SOH.PromixRefNumber) + @Seperator +

    RTRIM(ANH.AdviceNoteNUmber) + @Seperator +

    RTRIM(ANL.productNumber) + @Seperator +

    RTRIM(SUM(ANL.QuantitySHipped)) + @Seperator +

    RTRIM(ANL.QuantityUOM) + @Seperator +

    RTRIM(SUM(ANL.Weight)) + @Seperator +

    RTRIM(ANL.WeightUom) + @Seperator +

    RTRIM(MIN(ANL.BatchNumber)) + @Seperator +

    CONVERT(VarCHar(20),MIN(ANL.BBEDate),103) + @Seperator +

    RTRIM(SOH.CustomerCode) + @Seperator +

    RTRIM(SOH.CustomerOrderNumber) ),ANL.AdviceNoteNumber,@RECORDCHARACTER

    FROMAdviceNoteHeaders ANH

    INNER JOIN SalesOrderHeaders SOH ON

    ANH.Company = SOH.Company AND

    ANH.Location = SOH.Location AND

    ANH.Warehouse = SOH.Warehouse AND

    ANH.SalesOrderNumber= SOH.SalesOrderNumber

    INNER JOIN AdviceNoteLines ANL ON

    ANH.Company = ANL.Company AND

    ANH.Location = ANL.Location AND

    ANH.Warehouse = ANL.Warehouse AND

    ANH.AdviceNoteNumber = ANL.AdviceNoteNumber

    WHEREANH.Company = @COMPANY AND

    ANH.Location = @LOCATION AND

    ANH.Warehouse = @WAREHOUSE AND

    ANH.RequiresUpload = 1 AND

    LEN(ANH.SalesOrderNumber) = 6 AND

    LEN(ANH.AdviceNoteNumber) <=6 AND

    SOH.LitePick = 0

    GROUP BY

    ANH.Company,

    ANh.Location,

    ANH.Warehouse,

    ANH.AdviceNoteCreationDate,

    ANH.SalesOrderNumber,

    SOH.PromixRefNumber,

    ANH.AdviceNoteNUmber,

    ANL.productNumber,

    ANL.QuantityUOM,

    ANL.WeightUom,

    SOH.CustomerCode,

    SOH.CustomerOrderNumber,

    ANL.AdviceNoteNumber

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    INSERT INTO @DETAILS

    SELECT(@FOOTCHARACTER + @Seperator + @DISPLAYWAREHOUSE + @Seperator + CAST((SELECT COUNT(*) + 1 FROM @DETAILS) AS VARCHAR(6))),0,@FOOTCHARACTER

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    --Cursor for Line Details

    OPEN csrLINE

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    FETCH NEXT FROM csrLINE INTO @LINE

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    WHILE @@FETCH_STATUS =0

    BEGIN

    PRINT @LINE

    FETCH NEXT FROM csrLINE INTO @LINE

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    END

    --Cursor For Advice Notes

    OPEN csrADVICENOTENUMBER

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    FETCH NEXT FROM csrADVICENOTENUMBER INTO @ADVICENOTENUMBER

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    WHILE @@FETCH_STATUS = 0

    BEGIN

    UPDATE AdviceNoteHeaders

    SET RequiresUpload = 0

    WHERE Company= @Company AND Location= @Location AND Warehouse= @Warehouse and AdviceNoteNumber= @AdviceNoteNumber

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    FETCH NEXT FROM csrADVICENOTENUMBER INTO @ADVICENOTENUMBER

    IF @@ERROR <> 0

    BEGIN

    GOTO LOCALERROR

    END

    END

    SET NOCOUNT OFF

    COMMIT TRANSACTION

    LOCALEXIT:

    CLOSE csrLINE

    DEALLOCATE csrLINE

    CLOSE csrADVICENOTENUMBER

    DEALLOCATE csrADVICENOTENUMBER

    RETURN @@ERROR

    LOCALERROR:

    ROLLBACK TRANSACTION

    GOTO LOCALEXIT