Example #1
0
 private static void SetSqlString_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset, int length ) {
     if ( value.IsNull ) {
         setters.SetDBNull( sink, ordinal );
         sink.ProcessMessagesAndThrow();
     }
     else {
         if (SqlDbType.Variant == metaData.SqlDbType) {
             // Set up a NVarChar metadata with correct LCID/Collation
             metaData = new SmiMetaData(
                     SqlDbType.NVarChar, 
                     SmiMetaData.MaxUnicodeCharacters,
                     0, 
                     0, 
                     value.LCID,
                     value.SqlCompareOptions,
                     null);
             setters.SetVariantMetaData( sink, ordinal, metaData );
             sink.ProcessMessagesAndThrow();
         }
         SetString_Unchecked( sink, setters, ordinal, value.Value, offset, length );
     }
 }
Example #2
0
 private static void SetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlXml value) {
     if (value.IsNull) {
         setters.SetDBNull(sink, ordinal);
         sink.ProcessMessagesAndThrow();
     }
     else {
         SetXmlReader_Unchecked(sink, setters, ordinal, value.CreateReader());
     }
 }
Example #3
0
        private static void SetSqlMoney_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlMoney value ) {
            if ( value.IsNull ) {
                setters.SetDBNull( sink, ordinal );
            }
            else {
                if ( SqlDbType.Variant == metaData.SqlDbType ) {
                    setters.SetVariantMetaData( sink, ordinal, SmiMetaData.DefaultMoney );
                    sink.ProcessMessagesAndThrow();
                }

                setters.SetInt64( sink, ordinal, value.ToSqlInternalRepresentation() );
             }
            sink.ProcessMessagesAndThrow();
        }
Example #4
0
 private static void SetSqlSingle_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlSingle value ) {
     if ( value.IsNull ) {
         setters.SetDBNull( sink, ordinal );
     }
     else {
         setters.SetSingle( sink, ordinal, value.Value ); 
     }
     sink.ProcessMessagesAndThrow();
 }
Example #5
0
 private static void SetSqlBinary_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlBinary value, int offset, int length ) {
     if ( value.IsNull ) {
         setters.SetDBNull( sink, ordinal );
     }
     else {
         SetByteArray_Unchecked( sink, setters, ordinal, value.Value, offset, length );
     }
     sink.ProcessMessagesAndThrow();
 }
Example #6
0
        private static void SetSqlChars_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlChars value, int offset, int length ) {
            if ( value.IsNull ) {
                setters.SetDBNull( sink, ordinal );
                sink.ProcessMessagesAndThrow();
            }
            else {
                int chunkSize;
                if ( length > __maxCharChunkSize || length < 0 ) {
                    chunkSize = __maxCharChunkSize;
                }
                else {
                    chunkSize = checked( (int)length );
                }

                char[] buffer = new char[ chunkSize ];
                long charsRead;
                long charsWritten = 1;  // prime value to get into write loop
                long currentOffset = offset;
                long lengthWritten = 0;

                while ( (length < 0  || lengthWritten < length) &&
                        0 != ( charsRead = value.Read( currentOffset, buffer, 0, chunkSize ) ) &&
                        0 != charsWritten ) {
                    charsWritten = setters.SetChars( sink, ordinal, currentOffset, buffer, 0, checked( (int) charsRead ) );
                    sink.ProcessMessagesAndThrow();
                    checked{ currentOffset += charsWritten; }
                    checked{ lengthWritten += charsWritten;}
                }

                // Make sure to trim any left-over data
                setters.SetCharsLength( sink, ordinal, currentOffset );
                sink.ProcessMessagesAndThrow();
            }
        }
Example #7
0
 private static void SetDBNull_Unchecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal ) {
     setters.SetDBNull( sink, ordinal );
     sink.ProcessMessagesAndThrow();
 }
Example #8
0
 private static void SetUdt_LengthChecked( SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, object value ) {
     if ( ADP.IsNull( value ) ) {
         setters.SetDBNull( sink, ordinal );
         sink.ProcessMessagesAndThrow();
     }
     else {
         System.IO.Stream target = new SmiSettersStream( sink, setters, ordinal, metaData );
         SerializationHelperSql9.Serialize( target, value );
     }            
 }
 private static void SetSqlXml_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlXml value)
 {
     if (value.IsNull)
     {
         setters.SetDBNull(sink, ordinal);
     }
     else
     {
         XmlReader reader = value.CreateReader();
         XmlWriterSettings settings = new XmlWriterSettings {
             CloseOutput = false,
             ConformanceLevel = ConformanceLevel.Fragment,
             Encoding = Encoding.Unicode,
             OmitXmlDeclaration = true
         };
         Stream output = new SmiSettersStream(sink, setters, ordinal, SmiMetaData.DefaultXml);
         XmlWriter writer = XmlWriter.Create(output, settings);
         reader.Read();
         while (!reader.EOF)
         {
             writer.WriteNode(reader, true);
         }
         writer.Flush();
     }
     sink.ProcessMessagesAndThrow();
 }
 private static void SetSqlString_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SmiMetaData metaData, SqlString value, int offset, int length)
 {
     if (value.IsNull)
     {
         setters.SetDBNull(sink, ordinal);
         sink.ProcessMessagesAndThrow();
     }
     else
     {
         if (SqlDbType.Variant == metaData.SqlDbType)
         {
             metaData = new SmiMetaData(SqlDbType.NVarChar, 0xfa0L, 0, 0, (long) value.LCID, value.SqlCompareOptions, null);
             setters.SetVariantMetaData(sink, ordinal, metaData);
             sink.ProcessMessagesAndThrow();
         }
         SetString_Unchecked(sink, setters, ordinal, value.Value, offset, length);
     }
 }
 private static void SetSqlChars_Unchecked(SmiEventSink_Default sink, ITypedSettersV3 setters, int ordinal, SqlChars value, int offset, int length)
 {
     if (value.IsNull)
     {
         setters.SetDBNull(sink, ordinal);
         sink.ProcessMessagesAndThrow();
     }
     else
     {
         int num4;
         long num5;
         if ((length > 0xfa0) || (length < 0))
         {
             num4 = 0xfa0;
         }
         else
         {
             num4 = length;
         }
         char[] buffer = new char[num4];
         long num2 = 1L;
         long num = offset;
         for (long i = 0L; ((length < 0) || (i < length)) && ((0L != (num5 = value.Read(num, buffer, 0, num4))) && (0L != num2)); i += num2)
         {
             num2 = setters.SetChars(sink, ordinal, num, buffer, 0, (int) num5);
             sink.ProcessMessagesAndThrow();
             num += num2;
         }
         setters.SetCharsLength(sink, ordinal, num);
         sink.ProcessMessagesAndThrow();
     }
 }