Exemplo n.º 1
0
        internal override GatewayResult Execute()
        {
            Record();
            GatewayResult result       = new GatewayResult();
            RTDataSource  rtDataSource = GatewayAdapter.GetDataSource(DataSourceDefinition);

            //SerializeDatasource(DataSourceDefinition);
            //Serialize();
            if (rtDataSource == null)
            {
                rtDataSource = new RTDataSource(DataSourceDefinition);
                rtDataSource.GatewayAdapter = GatewayAdapter;
            }

            // TODO: Access (HDLINFO hdl_info_tbl_.datatbl)
            // TODO: Foreign keys
            // share & mode are ignored

            if (!rtDataSource.IsOpened)
            {
                try
                {
                    DatabaseDefinition dbDefinition = (DatabaseDefinition)DbDefinition.Clone();
                    UpdateDataBaseLocation(dbDefinition);

                    result.ErrorCode = GatewayAdapter.Gateway.FileOpen(DataSourceDefinition, dbDefinition, FileName, Access,
                                                                       DbShare.Write, DbOpen.Normal, null);
                }
                catch (FileNotFoundException ex)
                {
                    throw new ApplicationException("The SQLite database couldn't be opened.", ex);
                }
            }

            if (result.Success)
            {
                rtDataSource.Open();
            }
            SetErrorDetails(result);
            return(result);
        }
Exemplo n.º 2
0
        internal override GatewayResult Execute()
        {
            Record();
            RTDataSource  rtDataSource = GatewayAdapter.GetDataSource(DataSourceDefinition);
            GatewayResult result       = new GatewayResult();

            // TODO: Access (HDLINFO hdl_info_tbl_.datatbl)

            if (rtDataSource != null)
            {
                if (rtDataSource.IsLast)
                {
                    result.ErrorCode = GatewayAdapter.Gateway.FileClose(DataSourceDefinition);
                }

                if (result.Success)
                {
                    rtDataSource.Close();
                }
                SetErrorDetails(result);
            }
            return(result);
        }