public Table ToDatabase(SqlObjectIdentifier identifier, MemoryDbConnection connection, MemoryDbDataReader.ResultBatch batch)
        {
            var table = new Table(identifier);

            foreach (var field in batch.Fields)
            {
                Column column;
                if ((field as MemoryDbDataReader.ReaderFieldData)?.SelectFieldData is SelectDataFromColumn select)
                {
                    column = new Column(select.TableColumn.Column, field.Name, table.Columns.Count)
                    {
                        ParentTable        = table,
                        ComputedExpression = null
                    };
                }
                else
                {
                    var sqlType = Helper.DbType2SqlType(field.DbType);
                    column = new Column(table, field.Name, sqlType, connection.GetMemoryDatabase(  ).UserDataTypes, table.Columns.Count);
                }
                table.Columns.Add(column);
            }

            if (Helper.IsLocalTempTable(identifier))
            {
                connection.TempTables.Add(table.FullName, table);
            }
            else
            {
                connection.MemoryDatabase.Tables.Add(table.FullName, table);
            }
            return(table);
        }
Beispiel #2
0
 internal void AddToDatabase(MemoryDatabase database, MemoryDbConnection connection)
 {
     if (IsTempTable(_Table.Name))
     {
         connection.TempTables.Add(_Table.FullName, _Table);
     }
     else
     {
         database.Tables.Add(_Table.FullName, _Table);
     }
     AddColumns(_CreateTable.Definition, database);
     AddConstraints(_CreateTable.Definition);
 }
 public MemoryDbTransaction(MemoryDbConnection connection, IsolationLevel isolationLevel)
 {
     _Connection     = connection;
     _IsolationLevel = isolationLevel;
     _Connection.MemoryDatabase.SaveSnapshotForTransaction(  );
 }