/// <summary> /// Sets the fields of the object from a native JET_ENUMCOLUMN struct. /// </summary> /// <param name="value"> /// The native enumcolumn to set the values from. /// </param> internal void SetFromNativeEnumColumn(NATIVE_ENUMCOLUMN value) { this.columnid = new JET_COLUMNID { Value = value.columnid }; this.err = (JET_wrn)value.err; if (JET_wrn.ColumnSingleValue == this.err) { this.cbData = checked ((int)value.cbData); this.pvData = value.pvData; } else { this.cEnumColumnValue = checked ((int)value.cEnumColumnValue); this.rgEnumColumnValue = null; } }
public void TestSingleValueConversion() { var native = new NATIVE_ENUMCOLUMN { columnid = 1, err = (int) JET_wrn.ColumnSingleValue, cbData = 3, pvData = new IntPtr(4), }; var managed = new JET_ENUMCOLUMN(); managed.SetFromNativeEnumColumn(native); Assert.AreEqual<uint>(1, managed.columnid.Value); Assert.AreEqual(JET_wrn.ColumnSingleValue, managed.err); Assert.AreEqual(3, managed.cbData); Assert.AreEqual(new IntPtr(4), managed.pvData); }
public void TestMultiValueConversion() { var managed = new JET_ENUMCOLUMN(); unsafe { var columnvalues = stackalloc NATIVE_ENUMCOLUMNVALUE[2]; var native = new NATIVE_ENUMCOLUMN { columnid = 1, err = (int) JET_wrn.Success, cEnumColumnValue = 3, rgEnumColumnValue = columnvalues, }; managed.SetFromNativeEnumColumn(native); } Assert.AreEqual<uint>(1, managed.columnid.Value); Assert.AreEqual(JET_wrn.Success, managed.err); Assert.AreEqual(3, managed.cEnumColumnValue); Assert.AreEqual(null, managed.rgEnumColumnValue); }
/// <summary> /// Sets the fields of the object from a native JET_ENUMCOLUMN struct. /// </summary> /// <param name="value"> /// The native enumcolumn to set the values from. /// </param> internal void SetFromNativeEnumColumn(NATIVE_ENUMCOLUMN value) { this.columnid = new JET_COLUMNID { Value = value.columnid }; this.err = (JET_wrn) value.err; if (JET_wrn.ColumnSingleValue == this.err) { this.cbData = checked((int) value.cbData); this.pvData = value.pvData; } else { this.cEnumColumnValue = checked((int) value.cEnumColumnValue); this.rgEnumColumnValue = null; } }
public static unsafe extern int JetEnumerateColumns( IntPtr sesid, IntPtr tableid, uint cEnumColumnId, NATIVE_ENUMCOLUMNID* rgEnumColumnId, out uint pcEnumColumn, out NATIVE_ENUMCOLUMN* prgEnumColumn, JET_PFNREALLOC pfnRealloc, IntPtr pvReallocContext, uint cbDataMost, uint grbit);