コード例 #1
0
        private void AddRowValue(ArrayList row, Column column, SqlCodeObject value)
        {
            if (column.IsIdentity && column.ParentTable.IsIdentityInsertForbidden || column.IsRowVersion)
            {
                throw new SqlUpdateColumnForbiddenException(column.Name);
            }
            switch (value)
            {
            case SqlLiteralExpression literal:
            {
                row[column.Order] = Helper.GetValueFromString(column, literal);
                break;
            }

            case SqlBuiltinScalarFunctionCallExpression function:
            {
                var select = new SelectDataBuilder(  ).Build(function, new RawData(_Command));
                row[column.Order] = select.Select(new RawTableJoinRow());
                break;
            }

            case SqlScalarVariableRefExpression variableRef:
            {
                var select = new SelectDataFromVariables(variableRef, _Command);
                row[column.Order] = select.Select(new RawTableJoinRow());
                break;
            }

            default:
                throw new NotImplementedException($"Value of type {value.GetType(  )} is not supported");
            }
            ValidateDataSize(column, row[column.Order]);
        }
コード例 #2
0
        private void AddFieldFromVariable(SqlScalarVariableRefExpression variableRef, string name, MemoryDbDataReader.ResultBatch batch, RawData rawData)
        {
            var select = new SelectDataFromVariables(variableRef, _Command);

            AddFieldFromSelectData(name, batch, select);
        }