public void ConnectLocatorIncludingWithProperty()
        {
            // start the locator and servers without any authentication
            SetupCommon("");

            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // check a query
                Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }

            // Open a new connection to the locator with load-balancing disabled
            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                Dictionary <string, string> props = new Dictionary <string, string>();
                props.Add("load-balance", "false");
                conn.Open(props);

                // check a query
                Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }
        }
        public override void Run(object context)
        {
            try
            {
                String               providerName = Configuration.GFXDConfigManager.GetAppSetting("dbProvider");
                DbProviderFactory    factory      = DbProviderFactories.GetFactory(providerName);
                GFXDClientConnection conn         = (GFXDClientConnection)factory.CreateConnection();

                conn.Open();

                ///
                /// Add test logic here
                ///

                conn.Close();
            }
            catch (Exception e)
            {
                Log(e);
            }
            finally
            {
                base.Run(context);
            }
        }
        public void ConnectDefaultsIncludingWithProperty()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // check a query
                Assert.AreEqual(1, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }

            // Open a new connection to the server with streaming disabled
            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                Dictionary <string, string> props = new Dictionary <string, string>();
                props.Add("disable-streaming", "true");
                conn.Open(props);

                // check a query
                Assert.AreEqual(1, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }
        }
        public void GenericCoding()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                // using the base DbCommand class rather than GemFireXD specific class
                DbCommand cmd = conn.CreateCommand();
                cmd.CommandText = "create table t1 (id int primary key, addr varchar(20))";
                cmd.ExecuteNonQuery();

                try {
                    // insert into the table using named parameters
                    // using an abstracted method that can deal with difference in the
                    // conventions of named parameters in different drivers
                    cmd = conn.CreateCommand();
                    string idPrm   = GetEscapedParameterName("ID");
                    string addrPrm = GetEscapedParameterName("ADDR");
                    cmd.CommandText = "insert into t1 values (" + idPrm + "," + addrPrm + ")";
                    cmd.Prepare();
                    // using the base DbParameter class
                    DbParameter prm;
                    for (int i = 0; i < 1000; i++)
                    {
                        // first the parameter for ID
                        cmd.Parameters.Clear();
                        prm = cmd.CreateParameter();
                        prm.ParameterName = "ID";
                        prm.DbType        = DbType.Int32;
                        prm.Value         = i;
                        cmd.Parameters.Add(prm);
                        // next the parameter for ADDR
                        prm = cmd.CreateParameter();
                        prm.ParameterName = "ADDR";
                        prm.DbType        = DbType.String;
                        prm.Value         = "addr" + i;
                        cmd.Parameters.Add(prm);

                        cmd.ExecuteNonQuery();
                    }

                    // check the inserts
                    VerifyInserts(conn, s_numInserts);
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
        public void DataAdapterBatch()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                // using the base DbCommand class rather than GemFireXD specific class
                DbCommand cmd = conn.CreateCommand();
                cmd.CommandText = "create table t1 (id int primary key," +
                                  " addr varchar(20))";
                cmd.ExecuteNonQuery();

                try {
                    // populate DataTable from the underlying table
                    cmd             = conn.CreateCommand();
                    cmd.CommandText = "select * from t1";
                    DbDataAdapter adapter = new GFXDDataAdapter((GFXDCommand)cmd);
                    adapter.SelectCommand = cmd;
                    // associate a command builder with the DataAdapter
                    new GFXDCommandBuilder((GFXDDataAdapter)adapter);
                    // fill a DataTable using the above select SQL command
                    // though there is no data to be populated yet, the schema will still be
                    // set correctly in the DataTable even with no data which is required
                    // before trying to make any updates
                    DataTable table = new DataTable();
                    adapter.Fill(table);
                    // set batch size for best performance
                    adapter.UpdateBatchSize = s_numInserts;
                    // now perform the inserts in the DataTable
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        DataRow newRow = table.NewRow();
                        newRow["ID"]   = i;
                        newRow["ADDR"] = "addr" + i;
                        table.Rows.Add(newRow);
                    }
                    // apply the inserts to the underlying GemFireXD table
                    adapter.Update(table);

                    // check the inserts
                    VerifyInserts(conn, s_numInserts);
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// check for various connection attributes in addition to auth
        /// (examples from reference guide)
        /// </summary>
        public void BasicAuthentication()
        {
            // First use the connection with system user to create a new user.
            string host    = "localhost";
            int    port    = s_clientPort;
            string user    = "******";
            string passwd  = "gemfire1";
            string connStr = string.Format("server={0}:{1};user={2};password={3}",
                                           host, port, user, passwd);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();
                // fire a simple query to check the connection
                GFXDCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select count(*) from sys.members";
                Assert.AreEqual(1, cmd.ExecuteScalar());
                // create new user
                cmd.CommandText = "call sys.create_user('gemfirexd.user.gem2', 'gem2')";
                Assert.AreEqual(-1, cmd.ExecuteNonQuery());
                conn.Close();
            }

            // Open a new connection to the locator having network server
            // with username and password in the connection string.
            user    = "******";
            passwd  = "gem2";
            connStr = string.Format("server={0}:{1};user={2};password={3}",
                                    host, port, user, passwd);
            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();
                // fire a simple query to check the connection
                GFXDCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select count(*) from sys.members";
                Assert.AreEqual(1, cmd.ExecuteScalar());
                conn.Close();
            }

            // Open a new connection to the locator having network server
            // with username and password passed as properties.
            connStr = string.Format("server={0}:{1}", host, port);
            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                Dictionary <string, string> props = new Dictionary <string, string>();
                props.Add("user", user);
                props.Add("password", passwd);
                props.Add("disable-streaming", "true");
                props.Add("load-balance", "false");
                conn.Open(props);
                // fire a simple query to check the connection
                GFXDCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select count(*) from sys.members";
                Assert.AreEqual(1, cmd.ExecuteScalar());
                conn.Close();
            }
        }
        public void ConnectLocatorWithAuth()
        {
            // start the locator and servers with authentication
            SetupCommon(" -auth-provider=BUILTIN -gemfirexd.user.gem1=gem1" +
                        " -user=gem1 -password=gem1");

            // first create a new user
            string host    = "localhost";
            int    port    = s_clientPort;
            string user    = "******";
            string passwd  = "gem1";
            string connStr = string.Format("server={0}:{1};user={2};password={3}",
                                           host, port, user, passwd);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create user
                new GFXDCommand("call sys.create_user('gemfirexd.user.gem2', 'gem2')",
                                conn).ExecuteNonQuery();
                conn.Close();
            }
            // Open a new connection to the locator having network server on localhost
            // with username and password in the connection string.
            user    = "******";
            passwd  = "gem2";
            connStr = string.Format("server={0}:{1};user={2};password={3}",
                                    host, port, user, passwd);
            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // check a query
                Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }

            // Open a new connection to the locator having network server on localhost
            // with username and password passed as properties.
            string connStr2 = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr2)) {
                Dictionary <string, string> props = new Dictionary <string, string>();
                props.Add("user", user);
                props.Add("password", passwd);
                conn.Open(props);

                // check a query
                Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                                   conn).ExecuteScalar());
                conn.Close();
            }
        }
        public static int TestConnection()
        {
            GFXDClientConnection connection = new GFXDClientConnection(DbConnectionString);
            connection.Open();

            if(connection.State == ConnectionState.Open)
            {
                connection.Close();
                return 1;
            }

            return 0;
        }
Exemple #9
0
        public static int TestConnection()
        {
            GFXDClientConnection connection = new GFXDClientConnection(DbConnectionString);

            connection.Open();

            if (connection.State == ConnectionState.Open)
            {
                connection.Close();
                return(1);
            }

            return(0);
        }
        public void NamedParameters()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                                  " key, addr varchar(20))", conn);
                cmd.ExecuteNonQuery();

                try {
                    // insert into the table using named parameters
                    cmd = new GFXDCommand("insert into t1 values (:ID, :ADDR)", conn);
                    cmd.Prepare();
                    DbParameter prm;
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        // first the parameter for ID
                        cmd.Parameters.Clear();
                        prm = cmd.CreateParameter();
                        prm.ParameterName = "ID";
                        prm.DbType        = DbType.Int32;
                        prm.Value         = i;
                        cmd.Parameters.Add(prm);
                        // then the parameter for ADDR
                        prm = cmd.CreateParameter();
                        prm.ParameterName = "ADDR";
                        prm.DbType        = DbType.String;
                        prm.Value         = "addr" + i;
                        cmd.Parameters.Add(prm);

                        cmd.ExecuteNonQuery();
                    }

                    // check the inserts
                    VerifyInserts(conn, s_numInserts);
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
        public void PositionalParametersBatch()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                                  " key, addr varchar(20))", conn);
                cmd.ExecuteNonQuery();

                try {
                    // insert into the table using positional parameters
                    cmd = new GFXDCommand("insert into t1 values (?, ?)", conn);
                    cmd.Prepare();
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        cmd.Parameters.Add(i);
                        cmd.Parameters.Add("addr" + i);
                        cmd.AddBatch();
                    }
                    int[] results = cmd.ExecuteBatch();

                    // check the inserts
                    Assert.AreEqual(s_numInserts, results.Length);
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        Assert.AreEqual(1, results[i], "unexpected result=" + results[i] +
                                        " for i=" + i);
                    }
                    // also check in the database
                    VerifyInserts(conn, s_numInserts);
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
Exemple #12
0
        public DataSet ExecuteQuery(string query)
        {
            // comment this line if only non-connection pooling test desired
            connectionStr += ";userID=syed;password=syed;MinimumPoolSize=1;MaximumPoolSize=5;ConnectionLifetime=60;Pooling=true";


            var dt = new DataSet();

            try
            {
                var conn = new GFXDClientConnection(connectionStr);
                for (int i = 0; i < 1000; i++)
                {
                    conn.Open();
                    GFXDCommand cmd = conn.CreateCommand();
                    //cmd.CommandType = CommandType.Text;

                    cmd.CommandText = query;



                    //for (int i = 0; i < 1; i++)
                    //{
                    cmd.ExecuteNonQuery();
                    //}


                    //var da = new GFXDDataAdapter(cmd);
                    //da.Fill(dt);

                    conn.Close();
                }
            }
            catch (GFXDException ex)
            {
                string err = ex.Message;
            }
            catch (Exception ex)
            {
                string err = ex.Message;
            }

            return(dt);
        }
        public void PositionalParameters()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                                  " key, addr varchar(20))", conn);
                cmd.ExecuteNonQuery();

                try {
                    // insert into the table using positional parameters
                    cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                          conn);
                    cmd.Prepare();
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(i);
                        cmd.Parameters.Add("addr" + i);

                        cmd.ExecuteNonQuery();
                    }

                    // check the inserts
                    VerifyInserts(conn, s_numInserts);
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
    public void DataAdapterBatch()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        // using the base DbCommand class rather than GemFireXD specific class
        DbCommand cmd = conn.CreateCommand();
        cmd.CommandText = "create table t1 (id int primary key," +
          " addr varchar(20))";
        cmd.ExecuteNonQuery();

        try {
          // populate DataTable from the underlying table
          cmd = conn.CreateCommand();
          cmd.CommandText = "select * from t1";
          DbDataAdapter adapter = new GFXDDataAdapter((GFXDCommand)cmd);
          adapter.SelectCommand = cmd;
          // associate a command builder with the DataAdapter
          new GFXDCommandBuilder((GFXDDataAdapter)adapter);
          // fill a DataTable using the above select SQL command
          // though there is no data to be populated yet, the schema will still be
          // set correctly in the DataTable even with no data which is required
          // before trying to make any updates
          DataTable table = new DataTable();
          adapter.Fill(table);
          // set batch size for best performance
          adapter.UpdateBatchSize = s_numInserts;
          // now perform the inserts in the DataTable
          for (int i = 0; i < s_numInserts; i++) {
            DataRow newRow = table.NewRow();
            newRow["ID"] = i;
            newRow["ADDR"] = "addr" + i;
            table.Rows.Add(newRow);
          }
          // apply the inserts to the underlying GemFireXD table
          adapter.Update(table);

          // check the inserts
          VerifyInserts(conn, s_numInserts);

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
    public void ConnectLocatorWithAuth()
    {
      // start the locator and servers with authentication
      SetupCommon(" -auth-provider=BUILTIN -gemfirexd.user.gem1=gem1" +
                  " -user=gem1 -password=gem1");

      // first create a new user
      string host = "localhost";
      int port = s_clientPort;
      string user = "******";
      string passwd = "gem1";
      string connStr = string.Format("server={0}:{1};user={2};password={3}",
                                     host, port, user, passwd);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create user
        new GFXDCommand("call sys.create_user('gemfirexd.user.gem2', 'gem2')",
                        conn).ExecuteNonQuery();
        conn.Close();
      }
      // Open a new connection to the locator having network server on localhost
      // with username and password in the connection string.
      user = "******";
      passwd = "gem2";
      connStr = string.Format("server={0}:{1};user={2};password={3}",
                              host, port, user, passwd);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // check a query
        Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();
      }

      // Open a new connection to the locator having network server on localhost
      // with username and password passed as properties.
      string connStr2 = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr2)) {
        Dictionary<string, string> props = new Dictionary<string, string>();
        props.Add("user", user);
        props.Add("password", passwd);
        conn.Open(props);

        // check a query
        Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();

      }
    }
    /// <summary>
    /// check for various connection attributes in addition to auth
    /// (examples from reference guide)
    /// </summary>
    public void BasicAuthentication()
    {
      // First use the connection with system user to create a new user.
      string host = "localhost";
      int port = s_clientPort;
      string user = "******";
      string passwd = "gemfire1";
      string connStr = string.Format("server={0}:{1};user={2};password={3}",
                                     host, port, user, passwd);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();
        // fire a simple query to check the connection
        GFXDCommand cmd = conn.CreateCommand();
        cmd.CommandText = "select count(*) from sys.members";
        Assert.AreEqual(1, cmd.ExecuteScalar());
        // create new user
        cmd.CommandText = "call sys.create_user('gemfirexd.user.gem2', 'gem2')";
        Assert.AreEqual(-1, cmd.ExecuteNonQuery());
        conn.Close();
      }

      // Open a new connection to the locator having network server
      // with username and password in the connection string.
      user = "******";
      passwd = "gem2";
      connStr = string.Format("server={0}:{1};user={2};password={3}",
                              host, port, user, passwd);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();
        // fire a simple query to check the connection
        GFXDCommand cmd = conn.CreateCommand();
        cmd.CommandText = "select count(*) from sys.members";
        Assert.AreEqual(1, cmd.ExecuteScalar());
        conn.Close();
      }

      // Open a new connection to the locator having network server
      // with username and password passed as properties.
      connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        Dictionary<string, string> props = new Dictionary<string, string>();
        props.Add("user", user);
        props.Add("password", passwd);
        props.Add("disable-streaming", "true");
        props.Add("load-balance", "false");
        conn.Open(props);
        // fire a simple query to check the connection
        GFXDCommand cmd = conn.CreateCommand();
        cmd.CommandText = "select count(*) from sys.members";
        Assert.AreEqual(1, cmd.ExecuteScalar());
        conn.Close();
      }
    }
    public void GenericCoding()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        // using the base DbCommand class rather than GemFireXD specific class
        DbCommand cmd = conn.CreateCommand();
        cmd.CommandText = "create table t1 (id int primary key, addr varchar(20))";
        cmd.ExecuteNonQuery();

        try {
          // insert into the table using named parameters
          // using an abstracted method that can deal with difference in the
          // conventions of named parameters in different drivers
          cmd = conn.CreateCommand();
          string idPrm = GetEscapedParameterName("ID");
          string addrPrm = GetEscapedParameterName("ADDR");
          cmd.CommandText = "insert into t1 values (" + idPrm + "," + addrPrm + ")";
          cmd.Prepare();
          // using the base DbParameter class
          DbParameter prm;
          for (int i = 0; i < 1000; i++) {
            // first the parameter for ID
            cmd.Parameters.Clear();
            prm = cmd.CreateParameter();
            prm.ParameterName = "ID";
            prm.DbType = DbType.Int32;
            prm.Value = i;
            cmd.Parameters.Add(prm);
            // next the parameter for ADDR
            prm = cmd.CreateParameter();
            prm.ParameterName = "ADDR";
            prm.DbType = DbType.String;
            prm.Value = "addr" + i;
            cmd.Parameters.Add(prm);

            cmd.ExecuteNonQuery();
          }

          // check the inserts
          VerifyInserts(conn, s_numInserts);

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
    public void ConnectDefaultsIncludingWithProperty()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // check a query
        Assert.AreEqual(1, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();
      }

      // Open a new connection to the server with streaming disabled
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        Dictionary<string, string> props = new Dictionary<string, string>();
        props.Add("disable-streaming", "true");
        conn.Open(props);

        // check a query
        Assert.AreEqual(1, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();
      }
    }
    public void ConnectLocatorIncludingWithProperty()
    {
      // start the locator and servers without any authentication
      SetupCommon("");

      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // check a query
        Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();
      }

      // Open a new connection to the locator with load-balancing disabled
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        Dictionary<string, string> props = new Dictionary<string, string>();
        props.Add("load-balance", "false");
        conn.Open(props);

        // check a query
        Assert.AreEqual(3, new GFXDCommand("select count(id) from sys.members",
                                           conn).ExecuteScalar());
        conn.Close();
      }
    }
Exemple #20
0
    public DataSet ExecuteQuery(string query)
    {

      // comment this line if only non-connection pooling test desired
      connectionStr += ";userID=syed;password=syed;MinimumPoolSize=1;MaximumPoolSize=5;ConnectionLifetime=60;Pooling=true";


      var dt = new DataSet();

      try
      {
        var conn = new GFXDClientConnection(connectionStr);
        for (int i = 0; i < 1000; i++)
        {
          conn.Open();
          GFXDCommand cmd = conn.CreateCommand();
          //cmd.CommandType = CommandType.Text;

          cmd.CommandText = query;



          //for (int i = 0; i < 1; i++)
          //{
          cmd.ExecuteNonQuery();
          //}


          //var da = new GFXDDataAdapter(cmd);
          //da.Fill(dt);

          conn.Close();
        }
      }
      catch (GFXDException ex)
      {
        string err = ex.Message;
      }
      catch (Exception ex)
      {
        string err = ex.Message;
      }

      return dt;
    }
        public void DataReaderWithPositionalParameters()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                                  " key, addr varchar(20))", conn);
                cmd.ExecuteNonQuery();

                try {
                    // insert into the table using positional parameters
                    cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                          conn);
                    cmd.Prepare();
                    for (int i = 1; i <= s_numInserts; i++)
                    {
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(i);
                        cmd.Parameters.Add("addr" + i);

                        cmd.ExecuteNonQuery();
                    }

                    // now query the table using a DataReader
                    cmd.Parameters.Clear();
                    cmd.CommandText = "select * from t1";
                    GFXDDataReader reader     = cmd.ExecuteReader();
                    int[]          ids        = new int[s_numInserts];
                    int            numResults = 0;
                    while (reader.Read())
                    {
                        int    id   = reader.GetInt32(0);
                        string addr = reader.GetString(1);
                        if (ids[id - 1] != 0)
                        {
                            throw new Exception("Duplicate value for ID=" + id +
                                                " addr=" + addr);
                        }
                        ids[id - 1] = id;
                        numResults++;
                    }
                    reader.Close();
                    if (numResults != s_numInserts)
                    {
                        throw new Exception("unexpected number of results " + numResults);
                    }
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
    public void PositionalParameters()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                          " key, addr varchar(20))", conn);
        cmd.ExecuteNonQuery();

        try {
          // insert into the table using positional parameters
          cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                conn);
          cmd.Prepare();
          for (int i = 0; i < s_numInserts; i++) {
            cmd.Parameters.Clear();
            cmd.Parameters.Add(i);
            cmd.Parameters.Add("addr" + i);

            cmd.ExecuteNonQuery();
          }

          // check the inserts
          VerifyInserts(conn, s_numInserts);

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
    public void MixedParameters()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                          " key, addr varchar(20))", conn);
        cmd.ExecuteNonQuery();

        try {
          // insert into the table using named parameters
          cmd = new GFXDCommand("insert into t1 values (:ID, ?)", conn);
          cmd.Prepare();
          DbParameter prm;
          for (int i = 0; i < s_numInserts; i++) {
            // first the parameter for ID
            cmd.Parameters.Clear();
            prm = cmd.CreateParameter();
            prm.ParameterName = "ID";
            prm.DbType = DbType.Int32;
            prm.Value = i;
            cmd.Parameters.Add(prm);
            // then the parameter for ADDR
            prm = cmd.CreateParameter();
            prm.ParameterName = "ADDR";
            prm.Value = "addr" + i;
            cmd.Parameters.Add(prm);

            cmd.ExecuteNonQuery();
          }

          // check the inserts
          VerifyInserts(conn, s_numInserts);

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
        public void TransactionTest()
        {
            // Open a new connection to the network server running on localhost
            string host    = "localhost";
            int    port    = s_clientPort;
            string connStr = string.Format("server={0}:{1}", host, port);

            using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
                conn.Open();

                // create a table
                GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                                  " key, addr varchar(20))", conn);
                cmd.ExecuteNonQuery();

                try {
                    GFXDTransaction tran = conn.BeginTransaction(IsolationLevel
                                                                 .ReadCommitted);
                    cmd.Transaction = tran;
                    // insert into the table using positional parameters
                    cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                          conn);
                    cmd.Prepare();
                    for (int i = 0; i < s_numInserts; i++)
                    {
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(i);
                        cmd.Parameters.Add("addr" + i);

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

                    // check the inserts
                    VerifyInserts(conn, s_numInserts);

                    // fire some updates and if any unsuccessful then rollback the transaction
                    cmd.CommandText = "update t1 set addr = ? where id = ?";
                    tran            = conn.BeginTransaction(IsolationLevel.ReadCommitted);
                    cmd.Transaction = tran;
                    bool success = true;
                    for (int i = 100; i < 200; i++)
                    {
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add("address" + i);
                        cmd.Parameters.Add(i);
                        if (cmd.ExecuteNonQuery() != 1)
                        {
                            // update failed; rolling back the entire transaction
                            success = false;
                            tran.Rollback();
                            break;
                        }
                    }
                    // command for verification
                    string verifyText = "select * from t1 where id >= 100 and id < 200";
                    if (success)
                    {
                        // verify the updates in transactional data
                        VerifyInserts(conn, verifyText, 100, 199, "address");
                        // all succeeded; commit the transaction
                        tran.Commit();
                        // verify the updates after commit
                        VerifyInserts(conn, verifyText, 100, 199, "address");
                    }
                    else
                    {
                        // verify no updates
                        VerifyInserts(conn, verifyText, 100, 199, "addr");
                    }
                } finally {
                    // drop the table
                    cmd = new GFXDCommand("drop table t1", conn);
                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
    public void DataReaderWithPositionalParameters()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                          " key, addr varchar(20))", conn);
        cmd.ExecuteNonQuery();

        try {
          // insert into the table using positional parameters
          cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                conn);
          cmd.Prepare();
          for (int i = 1; i <= s_numInserts; i++) {
            cmd.Parameters.Clear();
            cmd.Parameters.Add(i);
            cmd.Parameters.Add("addr" + i);

            cmd.ExecuteNonQuery();
          }

          // now query the table using a DataReader
          cmd.Parameters.Clear();
          cmd.CommandText = "select * from t1";
          GFXDDataReader reader = cmd.ExecuteReader();
          int[] ids = new int[s_numInserts];
          int numResults = 0;
          while (reader.Read()) {
            int id = reader.GetInt32(0);
            string addr = reader.GetString(1);
            if (ids[id - 1] != 0) {
              throw new Exception("Duplicate value for ID=" + id +
                                  " addr=" + addr);
            }
            ids[id - 1] = id;
            numResults++;
          }
          reader.Close();
          if (numResults != s_numInserts) {
            throw new Exception("unexpected number of results " + numResults);
          }

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
    public void MultipleStringsBatch()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                          " key, addr varchar(20))", conn);
        cmd.ExecuteNonQuery();

        try {
          string cmdStr;
          // insert into the table using different command strings
          for (int i = 0; i < s_numInserts; i++) {
            cmdStr = "insert into t1 values (" + i + ", 'addr" + i + "')";
            cmd.AddBatch(cmdStr);
          }
          int[] results = cmd.ExecuteBatch();

          // check the inserts
          Assert.AreEqual(s_numInserts, results.Length);
          for (int i = 0; i < s_numInserts; i++) {
            Assert.AreEqual(1, results[i], "unexpected result=" + results[i] +
                            " for i=" + i);
          }
          // also check in the database
          VerifyInserts(conn, s_numInserts);

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }
    public void TransactionTest()
    {
      // Open a new connection to the network server running on localhost
      string host = "localhost";
      int port = s_clientPort;
      string connStr = string.Format("server={0}:{1}", host, port);
      using (GFXDClientConnection conn = new GFXDClientConnection(connStr)) {
        conn.Open();

        // create a table
        GFXDCommand cmd = new GFXDCommand("create table t1 (id int primary" +
                                          " key, addr varchar(20))", conn);
        cmd.ExecuteNonQuery();

        try {
          GFXDTransaction tran = conn.BeginTransaction(IsolationLevel
                                                       .ReadCommitted);
          cmd.Transaction = tran;
          // insert into the table using positional parameters
          cmd = new GFXDCommand("insert into t1 (id, addr) values (?, ?)",
                                conn);
          cmd.Prepare();
          for (int i = 0; i < s_numInserts; i++) {
            cmd.Parameters.Clear();
            cmd.Parameters.Add(i);
            cmd.Parameters.Add("addr" + i);

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

          // check the inserts
          VerifyInserts(conn, s_numInserts);

          // fire some updates and if any unsuccessful then rollback the transaction
          cmd.CommandText = "update t1 set addr = ? where id = ?";
          tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
          cmd.Transaction = tran;
          bool success = true;
          for (int i = 100; i < 200; i++) {
            cmd.Parameters.Clear();
            cmd.Parameters.Add("address" + i);
            cmd.Parameters.Add(i);
            if (cmd.ExecuteNonQuery() != 1) {
              // update failed; rolling back the entire transaction
              success = false;
              tran.Rollback();
              break;
            }
          }
          // command for verification
          string verifyText = "select * from t1 where id >= 100 and id < 200";
          if (success) {
            // verify the updates in transactional data
            VerifyInserts(conn, verifyText, 100, 199, "address");
            // all succeeded; commit the transaction
            tran.Commit();
            // verify the updates after commit
            VerifyInserts(conn, verifyText, 100, 199, "address");
          }
          else {
            // verify no updates
            VerifyInserts(conn, verifyText, 100, 199, "addr");
          }

        } finally {
          // drop the table
          cmd = new GFXDCommand("drop table t1", conn);
          cmd.ExecuteNonQuery();

          conn.Close();
        }
      }
    }