int main()
{
EXEC SQL BEGIN DECLARE SECTION
char oc_passwd[101] /*数据库密码*/
char oc_userid[101] /*数据库用户名*/
char oc_dbname[101] /*数据库名*/
char oc_coad[101]
EXEC SQL END DECLARE SECTION
memset(oc_passwd, 0x00, sizeof(oc_passwd))
memset(oc_userid, 0x00, sizeof(oc_userid))
memset(oc_dbname, 0x00, sizeof(oc_dbname))
/*取数据库用户名*/
strcpy(oc_userid, "userid")
/*取数据库用户密码*/
strcpy(oc_passwd, "passwd")
/*取数据库名*/
strcpy(oc_dbname, "dbname")
EXEC SQL CONNECT :oc_userid
IDENTIFIED BY :oc_passwd
USING :oc_dbname
if (sqlca.sqlcode != 0)
{
printf("用户名[%s]密码[%s]数据库[%s]\n", oc_userid, oc_passwd, oc_dbname)
printf("连接数据库失败,sqlcode=%d\n", sqlca.sqlcode)
return -1
}
/*读table取coad字段*/
memset(oc_coad, 0x00, sizeof(oc_coad))
EXEC SQL SELECT coad
INTO :oc_coad
FROM table
WHERE 1=1
if (sqlca.sqlcode == NORECORD)
{
printf("查询无记录\n")
return -1
}
else if (sqlca.sqlcode != 0)
{
printf("查询失败,sqlcode=%d\n", sqlca.sqlcode)
return -1
}
return 0
}
所谓“直接手动在数据库中执行一条select等 *** 作”,意味着我们已经连接到数据库了,然后1. 执行一个select语句, 2. 返回结果。
而:“直接在程序中实现select等数据库 *** 作”,可能需要考虑1. 链接到数据库,2. 执行sql语句,3. 返回结果 4. 断开连接。
当然也可能是指2. 执行sql语句,3.返回结果
还要考虑到在服务器上执行还是在客户机上执行,数据传输的时间等。
个人认为,就执行sql语句,同一个sql,其本身执行的时间应该是一致的(基本上)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)