コード例 #1
0
ファイル: SybaseCommand.cs プロジェクト: raj581/Marvin
        internal void DeriveParameters()
        {
            if (commandType != CommandType.StoredProcedure)
            {
                throw new InvalidOperationException(String.Format("SybaseCommand DeriveParameters only supports CommandType.StoredProcedure, not CommandType.{0}", commandType));
            }
            ValidateCommand("DeriveParameters");

            SybaseParameterCollection localParameters = new SybaseParameterCollection(this);

            localParameters.Add("@P1", SybaseType.NVarChar, commandText.Length).Value = commandText;

            string sql = "sp_procedure_params_rowset";

            Connection.Tds.ExecProc(sql, localParameters.MetaParameters, 0, true);

            SybaseDataReader reader = new SybaseDataReader(this);

            parameters.Clear();
            object[] dbValues = new object[reader.FieldCount];

            while (reader.Read())
            {
                reader.GetValues(dbValues);
                parameters.Add(new SybaseParameter(dbValues));
            }
            reader.Close();
        }
コード例 #2
0
ファイル: SybaseCommand.cs プロジェクト: raj581/Marvin
        public SybaseCommand(string commandText, SybaseConnection connection, SybaseTransaction transaction)
        {
            this.commandText      = commandText;
            this.connection       = connection;
            this.transaction      = transaction;
            this.commandType      = CommandType.Text;
            this.updatedRowSource = UpdateRowSource.Both;

            this.designTimeVisible = false;
            this.commandTimeout    = 30;
            parameters             = new SybaseParameterCollection(this);
        }
コード例 #3
0
ファイル: SybaseTest.cs プロジェクト: raj581/Marvin
        // execute an SQL UPDATE Command using ExecuteNonQuery()
        static void UpdateData(IDbConnection cnc)
        {
            IDbCommand updateCommand = cnc.CreateCommand();

            updateCommand.CommandText =
                "update mono_sybase_test " +
                "set " +
                "bit_value              = @p1, " +
                "tinyint_value          = @p2, " +
                "smallint_value         = @p3, " +
                "int_value              = @p4, " +
                "char_value             = @p5, " +
                "nchar_value            = @p6, " +
                "varchar_value          = @p7, " +
                "nvarchar_value         = @p8, " +
                "binary_value           = @p9, " +
                "varbinary_value        = @p10  " +
                "where smallint_value   = @p11";

            SybaseParameterCollection parameters = ((SybaseCommand)updateCommand).Parameters;

            parameters.Add("@p1", SybaseType.Bit);
            parameters.Add("@p2", SybaseType.TinyInt);
            parameters.Add("@p3", SybaseType.SmallInt);
            parameters.Add("@p4", SybaseType.Int);
            parameters.Add("@p5", SybaseType.Char, 10);
            parameters.Add("@p6", SybaseType.NChar, 10);
            parameters.Add("@p7", SybaseType.VarChar, 14);
            parameters.Add("@p8", SybaseType.NVarChar, 14);
            parameters.Add("@p9", SybaseType.Binary, 8);
            parameters.Add("@p10", SybaseType.VarBinary, 8);
            parameters.Add("@p11", SybaseType.SmallInt);

            parameters ["@p1"].Value = false;
            parameters ["@p2"].Value = 2;
            parameters ["@p3"].Value = 5;
            parameters ["@p4"].Value = 3;
            parameters ["@p5"].Value = "Mono.Data!";
            parameters ["@p6"].Value = "Mono.Data!";
            parameters ["@p7"].Value = "It was not me!";
            parameters ["@p8"].Value = "It was not me!";
            parameters ["@p9"].Value = new byte[2] {
                0x57, 0x3e
            };
            parameters ["@p10"].Value = new byte[2] {
                0xa2, 0xf7
            };
            parameters ["@p11"].Value = -22;

            updateCommand.ExecuteNonQuery();
        }
コード例 #4
0
ファイル: SybaseCommand.cs プロジェクト: raj581/Marvin
 private SybaseCommand(string commandText, SybaseConnection connection, SybaseTransaction transaction, CommandType commandType, UpdateRowSource updatedRowSource, bool designTimeVisible, int commandTimeout, SybaseParameterCollection parameters)
 {
     this.commandText       = commandText;
     this.connection        = connection;
     this.transaction       = transaction;
     this.commandType       = commandType;
     this.updatedRowSource  = updatedRowSource;
     this.designTimeVisible = designTimeVisible;
     this.commandTimeout    = commandTimeout;
     this.parameters        = new SybaseParameterCollection(this);
     for (int i = 0; i < parameters.Count; i++)
     {
         this.parameters.Add(((ICloneable)parameters[i]).Clone());
     }
 }
コード例 #5
0
ファイル: SybaseTest.cs プロジェクト: raj581/Marvin
        // Tests a SQL Command (INSERT, UPDATE, DELETE)
        // executed via ExecuteReader
        static IDataReader SelectDataUsingInsertCommand(IDbConnection cnc)
        {
            IDbCommand  selectCommand = cnc.CreateCommand();
            IDataReader reader;

            // This is a SQL INSERT Command, not a Query
            selectCommand.CommandText =
                "INSERT INTO mono_sybase_test (" +
                " bit_value, " +
                " binary_value, " +
                " char_value, " +
                " datetime_value, " +
                " decimal_value, " +
                " float_value, " +
                " int_value, " +
                " money_value, " +
                " nchar_value, " +
                " nvarchar_value, " +
                " real_value, " +
                " smalldatetime_value, " +
                " smallint_value, " +
                " smallmoney_value, " +
                " tinyint_value, " +
                " varbinary_value, " +
                " varchar_value " +
                ") values (" +
                "@p1, " +
                "@p2, " +
                "@p3, " +
                "@p4, " +
                "@p5, " +
                "@p6, " +
                "@p7, " +
                "@p8, " +
                "@p9, " +
                "@p10, " +
                "@p11, " +
                "@p12, " +
                "@p13, " +
                "@p14, " +
                "@p15, " +
                "@p16, " +
                "@p17 " +
                ")";

            SybaseParameterCollection parameters = ((SybaseCommand)selectCommand).Parameters;

            parameters.Add("@p1", SybaseType.Bit);
            parameters.Add("@p2", SybaseType.Binary, 8);
            parameters.Add("@p3", SybaseType.Char, 14);
            parameters.Add("@p4", SybaseType.DateTime);
            parameters.Add("@p5", SybaseType.Decimal);
            parameters.Add("@p6", SybaseType.Float);
            parameters.Add("@p7", SybaseType.Int);
            parameters.Add("@p8", SybaseType.Money);
            parameters.Add("@p9", SybaseType.NChar, 16);
            parameters.Add("@p10", SybaseType.NVarChar, 19);
            parameters.Add("@p11", SybaseType.Real);
            parameters.Add("@p12", SybaseType.SmallDateTime);
            parameters.Add("@p13", SybaseType.SmallInt);
            parameters.Add("@p14", SybaseType.SmallMoney);
            parameters.Add("@p15", SybaseType.TinyInt);
            parameters.Add("@p16", SybaseType.VarBinary, 8);
            parameters.Add("@p17", SybaseType.VarChar, 17);

            parameters ["@p1"].Value = true;
            parameters ["@p2"].Value = new byte[2] {
                0x9a, 0xbc
            };
            parameters ["@p3"].Value = "This is a char";
            parameters ["@p4"].Value = DateTime.Now;

            parameters ["@p5"].Value     = 123456789012.345;
            parameters ["@p5"].Precision = 15;
            parameters ["@p5"].Scale     = 3;

            parameters ["@p6"].Value  = 3.1415926969696;
            parameters ["@p7"].Value  = 1048000;
            parameters ["@p8"].Value  = 31337.456;
            parameters ["@p9"].Value  = "This is an nchar";
            parameters ["@p10"].Value = "This is an nvarchar";
            parameters ["@p11"].Value = 3.141592;
            parameters ["@p12"].Value = new DateTime(2001, 7, 9);
            parameters ["@p13"].Value = -22;
            parameters ["@p14"].Value = 31337.456;
            parameters ["@p15"].Value = 15;
            parameters ["@p16"].Value = new byte[2] {
                0xde, 0xef
            };
            parameters ["@p17"].Value = "This is a varchar";

            reader = selectCommand.ExecuteReader();

            return(reader);
        }
コード例 #6
0
ファイル: SybaseTest.cs プロジェクト: raj581/Marvin
        // execute SQL INSERT Command using ExecuteNonQuery()
        static void InsertData(IDbConnection cnc)
        {
            IDbCommand insertCommand = cnc.CreateCommand();

            insertCommand.CommandText =
                "INSERT INTO mono_sybase_test (" +
                " bit_value, " +
                " binary_value, " +
                " char_value, " +
                " datetime_value, " +
                " decimal_value, " +
                " float_value, " +
                " int_value, " +
                " money_value, " +
                " nchar_value, " +
                " nvarchar_value, " +
                " real_value, " +
                " smalldatetime_value, " +
                " smallint_value, " +
                " smallmoney_value, " +
                " tinyint_value, " +
                " varbinary_value, " +
                " varchar_value " +
                ") values (" +
                "@p1, " +
                "@p2, " +
                "@p3, " +
                "@p4, " +
                "@p5, " +
                "@p6, " +
                "@p7, " +
                "@p8, " +
                "@p9, " +
                "@p10, " +
                "@p11, " +
                "@p12, " +
                "@p13, " +
                "@p14, " +
                "@p15, " +
                "@p16, " +
                "@p17 " +
                ")";

            SybaseParameterCollection parameters = ((SybaseCommand)insertCommand).Parameters;

            parameters.Add("@p1", SybaseType.Bit);
            parameters.Add("@p2", SybaseType.Binary, 8);
            parameters.Add("@p3", SybaseType.Char, 14);
            parameters.Add("@p4", SybaseType.DateTime);
            parameters.Add("@p5", SybaseType.Decimal);
            parameters.Add("@p6", SybaseType.Float);
            parameters.Add("@p7", SybaseType.Int);
            parameters.Add("@p8", SybaseType.Money);
            parameters.Add("@p9", SybaseType.NChar, 16);
            parameters.Add("@p10", SybaseType.NVarChar, 19);
            parameters.Add("@p11", SybaseType.Real);
            parameters.Add("@p12", SybaseType.SmallDateTime);
            parameters.Add("@p13", SybaseType.SmallInt);
            parameters.Add("@p14", SybaseType.SmallMoney);
            parameters.Add("@p15", SybaseType.TinyInt);
            parameters.Add("@p16", SybaseType.VarBinary, 8);
            parameters.Add("@p17", SybaseType.VarChar, 17);

            parameters ["@p1"].Value = true;
            parameters ["@p2"].Value = new byte[2] {
                0x12, 0x34
            };
            parameters ["@p3"].Value = "This is a char";
            parameters ["@p4"].Value = new DateTime(1959, 7, 17);              // My mom's birthday!

            parameters ["@p5"].Value     = 123456789012.345;
            parameters ["@p5"].Precision = 15;
            parameters ["@p5"].Scale     = 3;

            parameters ["@p6"].Value  = 3.1415926969696;
            parameters ["@p7"].Value  = 1048000;
            parameters ["@p8"].Value  = 31337.456;
            parameters ["@p9"].Value  = "This is an nchar";
            parameters ["@p10"].Value = "This is an nvarchar";
            parameters ["@p11"].Value = 3.141592;
            parameters ["@p12"].Value = new DateTime(1976, 10, 31);              // My birthday!
            parameters ["@p13"].Value = -22;
            parameters ["@p14"].Value = 31337.456;
            parameters ["@p15"].Value = 15;
            parameters ["@p16"].Value = new byte[2] {
                0x56, 0x78
            };
            parameters ["@p17"].Value = "This is a varchar";

            insertCommand.ExecuteNonQuery();
        }