Example #1
0
        public int Insert(OracleConnection connection, object[] args)
        {
            if (args.Length % 2 != 0)
            {
                throw new ArgumentException("number of args must be even");
            }

            int M = args.Length / 2;

            switch (M)
            {
            case 1:
                var statement1 = $"insert into {table} ({args[0]}) values (:0)";
                return(QM.Insert(connection, statement1, new object[] { args[1] }));

            case 2:
                var statement2 = $"insert into {table} ({args[0]},{args[2]}) values (:0, :1)";
                return(QM.Insert(connection, statement2, new object[] { args[1], args[3] }));

            case 3:
                var statement3 = $"insert into {table} ({args[0]},{args[2]},{args[4]}) values (:0, :1, :2)";
                return(QM.Insert(connection, statement3, new object[] { args[1], args[3], args[5] }));

            case 4:
                var statement4 = $"insert into {table} ({args[0]},{args[2]},{args[4]},{args[6]}) values (:0, :1, :2, :3)";
                return(QM.Insert(connection, statement4, new object[] { args[1], args[3], args[5], args[7] }));

            default:
                throw new NotImplementedException($"M = {M}");
            }
        }