31.07.2013 Views

MySQL Cluster Tutorial - cdn.oreillystatic.com

MySQL Cluster Tutorial - cdn.oreillystatic.com

MySQL Cluster Tutorial - cdn.oreillystatic.com

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

static void run_application(MYSQL &mysql,<br />

Ndb_cluster_connection &cluster_connection)<br />

{<br />

/********************************************<br />

* Connect to database via mysql-c *<br />

********************************************/<br />

mysql_query(&mysql, "CREATE DATABASE TEST_DB_1");<br />

if (mysql_query(&mysql, "USE TEST_DB_1") != 0) MYSQLERROR(mysql);<br />

create_table(mysql);<br />

/********************************************<br />

* Connect to database via NdbApi *<br />

********************************************/<br />

// Object representing the database<br />

Ndb myNdb( &cluster_connection, "TEST_DB_1" );<br />

if (myNdb.init()) APIERROR(myNdb.getNdbError());<br />

do_insert(myNdb);<br />

do_indexScan(myNdb);<br />

drop_table(mysql);<br />

mysql_query(&mysql, "DROP DATABASE TEST_DB_1");<br />

}<br />

/*********************************************************<br />

* Create a table named COUNTRY if it does not exist *<br />

*********************************************************/<br />

static void create_table(MYSQL &mysql)<br />

{<br />

if (mysql_query(&mysql,<br />

"DROP TABLE IF EXISTS"<br />

" COUNTRY"))<br />

MYSQLERROR(mysql);<br />

}<br />

if (mysql_query(&mysql,<br />

"CREATE TABLE"<br />

" COUNTRY"<br />

" (SUB_ID INT UNSIGNED NOT NULL PRIMARY KEY,"<br />

" COUNTRY_CODE INT UNSIGNED NOT NULL)"<br />

" ENGINE=NDB"))<br />

MYSQLERROR(mysql);<br />

/***********************************<br />

* Drop a table named MYTABLENAME<br />

***********************************/<br />

static void drop_table(MYSQL &mysql)<br />

{<br />

if (mysql_query(&mysql,<br />

"DROP TABLE"<br />

" COUNTRY"))<br />

MYSQLERROR(mysql);<br />

}<br />

static void do_insert(Ndb &myNdb)<br />

{<br />

NdbDictionary::Dictionary* myDict= myNdb.getDictionary();<br />

const NdbDictionary::Table *myTable= myDict->getTable("COUNTRY");<br />

if (myTable == NULL)<br />

APIERROR(myDict->getNdbError());<br />

NdbTransaction *myTransaction= myNdb.startTransaction();<br />

if (myTransaction == NULL) APIERROR(myNdb.getNdbError());<br />

NdbOperation *myOperation= myTransaction->getNdbOperation(myTable);<br />

if (myOperation == NULL) APIERROR(myTransaction->getNdbError());<br />

myOperation->insertTuple();<br />

myOperation->equal("SUB_ID", 1);<br />

myOperation->setValue("COUNTRY_CODE", 44);<br />

myOperation= myTransaction->getNdbOperation(myTable);<br />

if (myOperation == NULL) APIERROR(myTransaction->getNdbError());<br />

myOperation->insertTuple();<br />

Copyright © 2010, Oracle and/or its affiliates. All rights reserved. 45/81

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!