public void SetForeignKeyConstraint(Database ForeignDB,
                                     ForeignKeyDeleteAction OnDelete,
                                     ForeignKeyNullifyDelegate NullifyFunc)
 {
     if (OnDelete == ForeignKeyDeleteAction.NULLIFY &&
         NullifyFunc == null)
     {
         throw new ArgumentException(
                   "A nullifying function must " +
                   "be provided when ForeignKeyDeleteAction.NULLIFY is set.");
     }
     fdbp      = ForeignDB;
     fkaction  = OnDelete;
     nullifier = NullifyFunc;
 }
 /// <summary>
 /// Specify the action taken when a referenced record in the foreign key
 /// database is deleted.
 /// </summary>
 /// <param name="ForeignDB">The foreign key database.</param>
 /// <param name="OnDelete">
 /// The action taken when a reference record is deleted.
 /// </param>
 /// <param name="NullifyFunc">
 /// When <paramref name="OnDelete"/> is
 /// <see cref="ForeignKeyDeleteAction.NULLIFY"/>, NullifyFunc is used to
 /// set the foreign key to null.
 /// </param>
 public void SetForeignKeyConstraint(Database ForeignDB,
     ForeignKeyDeleteAction OnDelete,
     ForeignKeyNullifyDelegate NullifyFunc)
 {
     if (OnDelete == ForeignKeyDeleteAction.NULLIFY &&
         NullifyFunc == null)
         throw new ArgumentException(
             "A nullifying function must " +
             "be provided when ForeignKeyDeleteAction.NULLIFY is set.");
     fdbp = ForeignDB;
     fkaction = OnDelete;
     nullifier = NullifyFunc;
 }
        /// <summary>
        /// Protected method to configure the DB.  Only valid before DB->open.
        /// </summary>
        /// <param name="cfg">Configuration parameters.</param>
        protected void Config(SecondaryDatabaseConfig cfg)
        {
            base.Config(cfg);
            KeyGen = cfg.KeyGen;
            Nullifier = cfg.ForeignKeyNullfier;

            db.set_flags(cfg.flags);
        }