public int SaveDocData(VSSAVEFLAGS dwSave, out string pbstrMkDocumentNew, out int pfSaveCanceled)
        {
            pbstrMkDocumentNew = null; // _view.Name;
            pfSaveCanceled     = 0;

            if (String.IsNullOrEmpty(_view.OriginalSql) == true)
            {
                using (TableNameDialog dlg = new TableNameDialog("View", _view.Name))
                {
                    if (dlg.ShowDialog(this) == DialogResult.Cancel)
                    {
                        pfSaveCanceled = 1;
                        return(VSConstants.S_OK);
                    }
                    _view.Name = dlg.TableName;
                }
            }

            CommitQueryBuilder();

            string query = _view.GetSqlText();

            if (String.IsNullOrEmpty(query) == false)
            {
                using (DbTransaction trans = _view.GetConnection().BeginTransaction())
                {
                    try
                    {
                        using (DbCommand cmd = _view.GetConnection().CreateCommand())
                        {
                            cmd.CommandText = query;
                            cmd.ExecuteNonQuery();
                        }
                        trans.Commit();
                    }
                    catch (Exception)
                    {
                        trans.Rollback();
                        throw;
                    }
                }
            }

            _dirty = false;
            _view.Committed();
            NotifyChanges();

            SQLiteCommandHandler.Refresh(_accessor, _itemId);

            return(VSConstants.S_OK);
        }