Date编程示例¶
date数据类型参数绑定
/*创建环境句柄、到数据库的连接 和 statement*/
Environment *env = Environment::createEnvironment();
Connection *conn = env->createConnection(user,pwd,link);
Statement *stmt = conn->createStatement();
string csql = "create table occi_test(a int, b date)";
string dsql = "drop table occi_test";
string test_sql ="select a, b from occi_test";
ResultSet *rs;
stmt->execute(dsql);
stmt->execute(csql);
/*insert语句通过id变量绑定参数*/
stmt->setSQL("insert into occi_test values(1,:1)");
Date d1(env,2016,12,19,16,27,10);
Date d2(d1);
stmt->setDate(1,d2);
stmt->execute();
rs = stmt->executeQuery(test_sql);
while(rs->next())
{
int year = 0;
unsigned int month = 0;
unsigned int day = 0;
unsigned int hour = 0;
unsigned int min = 0;
unsigned int sec = 0;
Date d3 = rs->getDate(2);
d3.getDate(year, month, day, hour, min, sec);
/*此处year=2016,month=12,day=19*/
}
stmt->closeResultSet(rs);
stmt->execute(dsql);
/*释放statement、数据库连接 和 环境句柄*/
conn->terminateStatement(stmt);
env->terminateConnection(conn);
Environment::terminateEnvironment(env);
date数据类型参数批量绑定
/*创建环境句柄、到数据库的连接 和 statement*/
Environment *env = Environment::createEnvironment();
Connection *conn = env->createConnection(user,pwd,link);
Statement *stmt = conn->createStatement();
string csql = "create table occi_test(a int, b date)";
string dsql = "drop table occi_test";
string test_sql ="select a, b from occi_test";
int id[ArraySize];
Number num[ArraySize];
ub2 id_len[ArraySize];
ub2 num_len[ArraySize];
ResultSet *rs;
int i = 0;
stmt->setSQL(dsql);
stmt->execute();
/*insert语句通过变量批量绑定参数*/
stmt->execute(csql);
/*insert批量操作*/
stmt->setSQL("insert into occi_test values(1,:1)");
for (int i = 0; i < 60; i++) {
Date d1(env, 2016, 12, 19, 16, 27, i);
dd[i] = d1;
ddLen[i] = sizeof(Date);
}
stmt->setDataBuffer(1, (dvoid*)dd, OCCI_SQLT_ODT, sizeof(dd[0]), ddLen);
stmt->executeArrayUpdate(60);
Connection* conn = GetConn();
conn->commit();
/*select*/
stmt->setSQL(test_sql);
rs = stmt->executeQuery();
i = 0;
while (rs->next())
{
Date d3 = rs->getDate(2);
d3.getDate(year, month, day, hour, min, sec);
/*此处num[i]值和sec相等*/
i++;
}
stmt->closeResultSet(rs);
stmt->execute(dsql);
/*释放statement、数据库连接 和 环境句柄*/
conn->terminateStatement(stmt);
env->terminateConnection(conn);
Environment::terminateEnvironment(env);