Beispiel #1
0
 /// <summary>
 /// Field's constructor.
 /// </summary>
 /// <param name="name">Field name</param>
 /// <param name="field_type">Field type</param>
 /// <param name="idx_flags">Index types (hash/T-tree)</param>
 /// <param name="ref_table">Reference table name for inverse reference fields</param>
 /// <param name="inv_ref_field">Inverse reference field name</param>
 public FastDbField(string name, CLI.FieldType field_type, CLI.FieldFlags idx_flags,
                    string ref_table, string inv_ref_field) :
     base(name, field_type, idx_flags)
 {
     this.RefTable    = ref_table;
     this.InvRefField = inv_ref_field;
 }
Beispiel #2
0
        public unsafe FastDbBuffer(string name, CLI.FieldType var_type, CLI.FieldFlags idx_flags)
        {
            buffer = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(CLI.UnmanagedBuffer)));
            ((CLI.UnmanagedBuffer *)buffer)->fetch_data = true;
            ((CLI.UnmanagedBuffer *)buffer)->type       = (int)var_type;
            ((CLI.UnmanagedBuffer *)buffer)->size       = CLI.SizeOfCliType[(int)var_type];
            ((CLI.UnmanagedBuffer *)buffer)->capacity   = MIN_CAPACITY;
            ((CLI.UnmanagedBuffer *)buffer)->data       = Marshal.AllocCoTaskMem(MIN_CAPACITY);

            this.name  = name; //Marshal.StringToHGlobalAnsi(name);
            this.flags = (int)idx_flags;

            disposed = false;
        }
Beispiel #3
0
 /// <summary>
 /// Alter index on a field
 /// </summary>
 /// <param name="TableName">Name of the table</param>
 /// <param name="FieldName">Name of the field</param>
 /// <param name="NewFlags">New index types.</param>
 public void AlterIndex(string TableName, string FieldName, CLI.FieldFlags NewFlags)
 {
     CLI.CliCheck(CLI.cli_alter_index(session, TableName, FieldName, NewFlags));
 }
Beispiel #4
0
        /// <summary>
        /// Use this method to add a field to the collection.
        /// </summary>
        /// <param name="name">Name of the field</param>
        /// <param name="field_type">Type of the field</param>
        /// <param name="index_type">Optional index to be built on the field (default: CLI.FieldFlags.no_index)</param>
        /// <param name="ref_table">Reference table name (used for inverse references). Default: null.</param>
        /// <param name="inv_ref_field">Inverse reference field name (default: null)</param>
        /// <returns></returns>
        public FastDbField Add(string name, CLI.FieldType field_type, CLI.FieldFlags index_type, string ref_table, string inv_ref_field)
        {
            int i = items.Add(new FastDbField(name, field_type, index_type, ref_table, inv_ref_field));

            return((FastDbField)items[i]);
        }
Beispiel #5
0
 public FastDbField Add(string name, CLI.FieldType field_type, CLI.FieldFlags index_type, string ref_table)
 {
     return(Add(name, field_type, index_type, ref_table, null));
 }