Example #1
0
        internal void ReadResultTupleSP(ResultTuple tuple, int colCount, CubridConnection con)
        {
            tuple.Index = ReadInt();
            tuple.Oid   = ReadOid();

            for (int i = 0; i < colCount; i++)
            {
                int    size = ReadInt();
                object val;

                if (size <= 0)
                {
                    val = null;
                }
                else
                {
                    CubridDataType type;

                    type = (CubridDataType)ReadByte();
                    size--;

                    val = ReadValue(i, type, size, con);
                }

                tuple[i] = val;
            }
            Debug.WriteLine(tuple);
        }
Example #2
0
        static void TestQuery()
        {
            try
            {
                CubridConnection con = new CubridConnection();
                con.ConnectionString = "server=localhost;database=testdb;port=30000;user=dba;password="******"SELECT * FROM t";
                CubridCommand cmd = new CubridCommand(sql, con);
                DbDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    Console.Write(reader.GetInt32(0) + " | ");
                    Console.Write(reader.GetString(1) + " | ");
                    Console.Write(reader.GetString(2) + " | ");
                    Console.Write(reader.GetFloat(3) + " | ");
                    Console.Write(reader.GetDouble(4) + " | ");
                    Console.WriteLine(reader.GetDateTime(5));
                }

                cmd.Close();
                con.Close();
            }
            catch (CubridException e)
            {
                Console.WriteLine(e);
            }
        }
Example #3
0
        public CubridCommand(CubridConnection con, int handle)
            : this()
        {
            this.con = con;
            this.handle = handle;

            GetOutResultSet(handle);
        }
Example #4
0
        public CubridCommand(CubridConnection con, int handle)
            : this()
        {
            this.con    = con;
            this.handle = handle;

            GetOutResultSet(handle);
        }
Example #5
0
 internal CubridDataReader(CubridCommand stmt, int handle, int count, ColumnMetaData[] columnInfos)
 {
     this.stmt = stmt;
     this.con = (CubridConnection) stmt.Connection;
     this.handle = handle;
     resultCount = count;
     this.columnMetaData = columnInfos;
     current = 0;
     resultTuple = new ResultTuple(columnInfos.Length);
 }
Example #6
0
 internal CubridDataReader(CubridCommand stmt, int handle, int count, ColumnMetaData[] columnInfos)
 {
     this.stmt           = stmt;
     this.con            = (CubridConnection)stmt.Connection;
     this.handle         = handle;
     resultCount         = count;
     this.columnMetaData = columnInfos;
     current             = 0;
     resultTuple         = new ResultTuple(columnInfos.Length);
 }
Example #7
0
        static void TestSimple()
        {
            try
            {
                CubridConnection con = new CubridConnection();
                con.ConnectionString = "server=localhost;database=testdb;port=30000;user=dba;password="******"CREATE TABLE t(a int, b char(10), c string, d float, e double, f date)";
                CubridCommand command = new CubridCommand(sql, con);
                command.ExecuteNonQuery();

                command.Close();
                con.Close();
            }
            catch (CubridException e)
            {
                Console.WriteLine(e);
            }
        }
Example #8
0
        static void TestStoredProcedure()
        {
            try
            {
                CubridConnection con = new CubridConnection();
                con.ConnectionString = "server=localhost;database=testdb;port=30000;user=dba;password="******"CREATE FUNCTION sp1(a int) RETURN string AS LANGUAGE JAVA NAME 'SpTest.test1(int) return java.lang.String'";
                CubridCommand cmd = new CubridCommand(sql, con);
                cmd.ExecuteNonQuery();
                cmd.Close();

                sql = "? = CALL sp1(?)";
                cmd = new CubridCommand(sql, con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add();
                cmd.Parameters[0].Direction = ParameterDirection.Output;
                cmd.Parameters[0].DbType = DbType.String;

                cmd.Parameters.Add(12345678);
                cmd.Parameters[1].DbType = DbType.Int32;

                cmd.ExecuteNonQuery();
                Console.WriteLine("result: " + cmd.Parameters[0].Value);
                cmd.Close();

                sql = "DROP FUNCTION sp1";
                cmd = new CubridCommand(sql, con);
                cmd.ExecuteNonQuery();
                cmd.Close();

                con.Close();
            }
            catch (CubridException e)
            {
                Console.WriteLine(e);
            }
        }
Example #9
0
 public CubridTransaction(CubridConnection con, IsolationLevel il)
 {
     this.con           = con;
     this.il            = il;
     con.IsolationLevel = il;
 }
Example #10
0
 public CubridCommand(string sql, CubridConnection con, CubridTransaction tran)
     : this(sql, con)
 {
     this.tran = tran;
 }
Example #11
0
 public CubridCommand(string sql, CubridConnection con)
     : this(sql)
 {
     this.con = con;
 }
Example #12
0
        internal object ReadValue(int index, CubridDataType type, int size, CubridConnection con)
        {

            switch (type)
            {
                case CubridDataType.Char:
                case CubridDataType.Nchar:
                case CubridDataType.String:
                case CubridDataType.Varnchar:
                    return ReadString(size, Encoding.Default);

                case CubridDataType.Short:
                    return ReadShort();

                case CubridDataType.Int:
                    return ReadInt();

                case CubridDataType.Float:
                    return ReadFloat();

                case CubridDataType.Double:
                case CubridDataType.Monetary:
                    return ReadDouble();

                case CubridDataType.Date:
                    return ReadDate();

                case CubridDataType.Time:
                    return ReadTime();

                case CubridDataType.Timestamp:
                    return ReadDateTime();

                case CubridDataType.Object:
                    return ReadOid();

                case CubridDataType.Bit:
                case CubridDataType.Varbit:
                    return ReadBytes(size);

                case CubridDataType.Set:
                case CubridDataType.Multiset:
                case CubridDataType.Sequence:
                    CubridDataType baseType = (CubridDataType)ReadByte();
                    int count = ReadInt();
                    object[] seq = new object[count];

                    for (int i = 0; i < count; i++)
                    {
                        int elesize = ReadInt();
                        if(elesize <= 0)
                        {
                            seq[i] = null;
                        }
                        else
                        {
                            seq[i] = ReadValue(i, baseType, elesize, con);
                        }
                    }

                    return seq;

                case CubridDataType.ResultSet:
                    int handle = ReadInt();
                    CubridCommand cmd = new CubridCommand(con, handle);
                    return cmd.GetDataReaderFromStoredProcedure();

                default:
                    return null; //throw exception ??
            }
        }
Example #13
0
        internal object ReadValue(int index, CubridDataType type, int size, CubridConnection con)
        {
            switch (type)
            {
            case CubridDataType.Char:
            case CubridDataType.Nchar:
            case CubridDataType.String:
            case CubridDataType.Varnchar:
                return(ReadString(size, Encoding.Default));

            case CubridDataType.Short:
                return(ReadShort());

            case CubridDataType.Int:
                return(ReadInt());

            case CubridDataType.Float:
                return(ReadFloat());

            case CubridDataType.Double:
            case CubridDataType.Monetary:
                return(ReadDouble());

            case CubridDataType.Date:
                return(ReadDate());

            case CubridDataType.Time:
                return(ReadTime());

            case CubridDataType.Timestamp:
                return(ReadDateTime());

            case CubridDataType.Object:
                return(ReadOid());

            case CubridDataType.Bit:
            case CubridDataType.Varbit:
                return(ReadBytes(size));

            case CubridDataType.Set:
            case CubridDataType.Multiset:
            case CubridDataType.Sequence:
                CubridDataType baseType = (CubridDataType)ReadByte();
                int            count    = ReadInt();
                object[]       seq      = new object[count];

                for (int i = 0; i < count; i++)
                {
                    int elesize = ReadInt();
                    if (elesize <= 0)
                    {
                        seq[i] = null;
                    }
                    else
                    {
                        seq[i] = ReadValue(i, baseType, elesize, con);
                    }
                }

                return(seq);

            case CubridDataType.ResultSet:
                int           handle = ReadInt();
                CubridCommand cmd    = new CubridCommand(con, handle);
                return(cmd.GetDataReaderFromStoredProcedure());

            default:
                return(null);    //throw exception ??
            }
        }
Example #14
0
 public CubridTransaction(CubridConnection con, IsolationLevel il)
 {
     this.con = con;
     this.il = il;
     con.IsolationLevel = il;
 }
Example #15
0
        internal void ReadResultTuple(ResultTuple tuple, ColumnMetaData[] columnInfos, CubridStatementype stmtType, CubridConnection con)
        {
            tuple.Index = ReadInt();
            tuple.Oid   = ReadOid();

            for (int j = 0; j < columnInfos.Length; j++)
            {
                int    size = ReadInt();
                object val;

                if (size <= 0)
                {
                    val = null;
                }
                else
                {
                    CubridDataType type = CubridDataType.Null;

                    if (stmtType == CubridStatementype.Call ||
                        stmtType == CubridStatementype.Evaluate ||
                        stmtType == CubridStatementype.CallStoredProcedure ||
                        columnInfos[j].Type == CubridDataType.Null)
                    {
                        type = (CubridDataType)ReadByte();
                        size--;
                    }
                    else
                    {
                        type = columnInfos[j].Type;
                    }

                    val = ReadValue(j, type, size, con);
                }

                tuple[j] = val;
                tuple[columnInfos[j].Name] = val;
            }

            Debug.WriteLine(tuple);
        }
Example #16
0
        internal void ReadResultTupleSP(ResultTuple tuple, int colCount, CubridConnection con)
        {
            tuple.Index = ReadInt();
            tuple.Oid = ReadOid();

            for (int i = 0; i < colCount; i++)
            {
                int size = ReadInt();
                object val;

                if (size <= 0)
                {
                    val = null;
                }
                else
                {
                    CubridDataType type;

                    type = (CubridDataType)ReadByte();
                    size--;

                    val = ReadValue(i, type, size, con);
                }

                tuple[i] = val;
            }
            Debug.WriteLine(tuple);
        }
Example #17
0
 public CubridCommand(string sql, CubridConnection con)
     : this(sql)
 {
     this.con = con;
 }
Example #18
0
        static void TestStoredProcedureResultSet()
        {
            try
            {
                CubridConnection con = new CubridConnection();
                con.ConnectionString = "server=localhost;database=testdb;port=30000;user=dba;password="******"CREATE FUNCTION sp2() RETURN cursor AS LANGUAGE JAVA NAME 'SpTest.test2() return java.sql.ResultSet'";
                CubridCommand cmd = new CubridCommand(sql, con);
                cmd.ExecuteNonQuery();
                cmd.Close();

                sql = "? = CALL sp2()";
                cmd = new CubridCommand(sql, con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add(CubridDataType.ResultSet);
                cmd.Parameters[0].Direction = ParameterDirection.Output;

                cmd.ExecuteNonQuery();

                DbDataReader reader = (DbDataReader)cmd.Parameters[0].Value;

                while (reader.Read())
                {
                    Console.Write(reader.GetInt32(0) + " | ");
                    Console.Write(reader.GetString(1) + " | ");
                    Console.Write(reader.GetString(2) + " | ");
                    Console.Write(reader.GetFloat(3) + " | ");
                    Console.Write(reader.GetDouble(4) + " | ");
                    Console.WriteLine(reader.GetDateTime(5));
                }

                cmd.Close();

                sql = "DROP FUNCTION sp2";
                cmd = new CubridCommand(sql, con);
                cmd.ExecuteNonQuery();
                cmd.Close();

                con.Close();
            }
            catch (CubridException e)
            {
                Console.WriteLine(e);
            }
        }
Example #19
0
        static void TestTransaction()
        {
            DbTransaction tran = null;

            try
            {
                CubridConnection con = new CubridConnection();
                con.ConnectionString = "server=localhost;database=testdb;port=30000;user=dba;password="******"INSERT INTO t VALUES(?, ?, ?, ?, ?, ?)";
                CubridCommand cmd = new CubridCommand(sql, con);

                cmd.Parameters.Add(1);
                cmd.Parameters[0].DbType = DbType.Int32;

                cmd.Parameters.Add("cubrid");
                cmd.Parameters[1].DbType = DbType.String;

                cmd.Parameters.Add(CubridDataType.String);
                cmd.Parameters[2].Value = "ado.net provider";

                cmd.Parameters.Add(3.14f);
                cmd.Parameters[3].DbType = DbType.Single;

                cmd.Parameters.Add(3.14159253637283645);
                cmd.Parameters[4].DbType = DbType.Double;

                cmd.Parameters.Add(new DateTime());
                cmd.Parameters[5].DbType = DbType.Date;

                cmd.ExecuteNonQuery();

                cmd.Parameters[0].Value = 2;
                cmd.Parameters[1].Value = "open";
                cmd.Parameters[2].Value = "source";
                cmd.Parameters[3].Value = 735626.34f;
                cmd.Parameters[4].Value = 8373625.383635235373;
                cmd.Parameters[5].Value = new DateTime(2008, 12, 24);

                cmd.ExecuteNonQuery();
                tran.Commit();

                cmd.Close();
                con.Close();
            }
            catch (CubridException e)
            {
                tran.Rollback();
                Console.WriteLine(e);
            }
        }
Example #20
0
 public CubridCommand(string sql, CubridConnection con, CubridTransaction tran)
     : this(sql, con)
 {
     this.tran = tran;
 }
Example #21
0
        internal void ReadResultTuple(ResultTuple tuple, ColumnMetaData[] columnInfos, CubridStatementype stmtType, CubridConnection con)
        {
            tuple.Index = ReadInt();
            tuple.Oid = ReadOid();

            for (int j = 0; j < columnInfos.Length; j++)
            {
                int size = ReadInt();
                object val;

                if (size <= 0)
                {
                    val = null;
                }
                else
                {
                    CubridDataType type = CubridDataType.Null;

                    if (stmtType == CubridStatementype.Call
                        || stmtType == CubridStatementype.Evaluate
                        || stmtType == CubridStatementype.CallStoredProcedure
                        || columnInfos[j].Type == CubridDataType.Null)
                    {
                        type = (CubridDataType)ReadByte();
                        size--;
                    }
                    else
                    {
                        type = columnInfos[j].Type;
                    }

                    val = ReadValue(j, type, size, con);
                }

                tuple[j] = val;
                tuple[columnInfos[j].Name] = val;
            }

            Debug.WriteLine(tuple);
        }