public override void SetOutputColumnDataTypeProperties(int iOutputID, int iOutputColumnID, DataType eDataType, int iLength, int iPrecision, int iScale, int iCodePage)
        {
            IDTSOutputCollection100 outputColl = ComponentMetaData.OutputCollection;
            IDTSOutput100           output     = outputColl.GetObjectByID(iOutputID);

            if (output != null)
            {
                if (output.IsErrorOut)
                {
                    this.PostErrorAndThrow(MessageStrings.CantChangeErrorOutputProperties);
                }
                else
                {
                    IDTSOutputColumnCollection100 columnColl = output.OutputColumnCollection;
                    IDTSOutputColumn100           column     = columnColl.GetObjectByID(iOutputColumnID);
                    if (column != null)
                    {
                        if (ValidateSupportedDataTypes(eDataType) == DTSValidationStatus.VS_ISVALID)
                        {
                            column.SetDataTypeProperties(eDataType, iLength, iPrecision, iScale, iCodePage);
                        }
                        else
                        {
                            throw new COMException(string.Empty, E_FAIL);
                        }
                    }
                }
            }
        }
        public override void SetOutputColumnDataTypeProperties(int iOutputID, int iOutputColumnID, DataType eDataType, int iLength, int iPrecision, int iScale, int iCodePage)
        {
            IDTSOutputCollection100       outputColl = ComponentMetaData.OutputCollection;
            IDTSOutput100                 output     = outputColl.GetObjectByID(iOutputID);
            IDTSOutputColumnCollection100 columnColl = output.OutputColumnCollection;
            IDTSOutputColumn100           column     = columnColl.GetObjectByID(iOutputColumnID);

            column.SetDataTypeProperties(eDataType, iLength, iPrecision, iScale, iCodePage);
        }
Beispiel #3
0
 /// <summary>
 /// Получение выходного потока с указанным именем.
 /// </summary>
 /// <param name="collection">Коллекция выходных потоков.</param>
 /// <param name="name">Имя выходного потока.</param>
 /// <returns>Метод возвращает выходной поток с именем, указанным в параметре <paramref name="name"/>.</returns>
 /// <exception cref="Exception">Исключение возникает, если в коллекции не найдено выходного потока с указанным именем.</exception>
 public static IDTSOutput100 GetOutputByName(this IDTSOutputCollection100 collection, string name)
 {
     foreach (IDTSOutput100 output in collection)
     {
         if (output.Name == name)
         {
             return(output);
         }
     }
     throw new Exception($@"Could not find output stream with the name of ""{name}"".");
 }
        public override void SetOutputColumnDataTypeProperties(int outputID, int outputColumnID, Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType dataType, int length, int precision, int scale, int codePage)

        {
            IDTSOutputCollection100 outputColl = this.ComponentMetaData.OutputCollection;

            IDTSOutput100 output = outputColl.GetObjectByID(outputID);

            IDTSOutputColumnCollection100 columnColl = output.OutputColumnCollection;

            IDTSOutputColumn100 column = columnColl.GetObjectByID(outputColumnID);

            column.SetDataTypeProperties(dataType, length, precision, scale, codePage);
        }
        private IDTSOutput100 GetMainOutput()
        {
            IDTSOutputCollection100 outputCollection = this.componentMetadata.OutputCollection;

            if (outputCollection[0].IsErrorOut)
            {
                return(outputCollection[1]);
            }
            else
            {
                return(outputCollection[0]);
            }
        }
        public override DTSValidationStatus Validate()
        {
            bool cancel;
            IDTSInputCollection100  inputCollection  = ComponentMetaData.InputCollection;
            IDTSOutputCollection100 outputCollection = ComponentMetaData.OutputCollection;

            // Make sure there is one input.
            if (inputCollection.Count != 1)
            {
                ComponentMetaData.FireError(0, ComponentMetaData.Name, "Should only have a single input.", string.Empty, 0, out cancel);
                return(DTSValidationStatus.VS_ISCORRUPT);
            }
            else if (inputCollection[0].InputColumnCollection.Count == 0)
            {
                ComponentMetaData.FireError(0, ComponentMetaData.Name, "There should be at least one input column.", string.Empty, 0, out cancel);
                return(DTSValidationStatus.VS_ISBROKEN);
            }

            // Make sure there is only one error output.
            if (outputCollection.Count != 1)
            {
                ComponentMetaData.FireError(0, ComponentMetaData.Name, "Should only have a single output.", string.Empty, 0, out cancel);
                return(DTSValidationStatus.VS_ISCORRUPT);
            }
            else if (outputCollection[0].OutputColumnCollection.Count == 0)
            {
                ComponentMetaData.FireError(0, ComponentMetaData.Name, "There should be at least one output column.", string.Empty, 0, out cancel);
                return(DTSValidationStatus.VS_ISBROKEN);
            }

            if (ComponentMetaData.AreInputColumnsValid == false)
            {
                return(DTSValidationStatus.VS_NEEDSNEWMETADATA);
            }


            return(base.Validate());
        }
Beispiel #7
0
 internal BipsProxyIDTSOutputCollection100(IDTSOutputCollection100 innerObject)
 {
     _innerObject = innerObject;
 }
Beispiel #8
0
 /// <summary>
 /// Получение выходного потока по умолчанию.
 /// </summary>
 /// <param name="collection">Коллекция выходных потоков.</param>
 /// <returns>Метод возвращает выходной поток с именем <c>Output</c>.</returns>
 public static IDTSOutput100 GetDefaultOutput(this IDTSOutputCollection100 collection)
 {
     return(collection.GetOutputByName("Output"));
 }