今天起晚了,后来决定就不去上课了。。。
于是乎,便打算就数据库的上机作业完成一下,
之前,我做过java与数据库的,
感觉还是挺方便,现在那c/c++写,应该还是差不多的吧。。
但是做了之后才知道还是有些地方不一样的,
比如一些声明:
exec sql begin declare section;
数据定义。。。。
exec sql end declare section;
使用的语句也都是以 exec sql 开头的。。。
经常要将我们定义的变量和表中的变量进行关联。。。
今天遇到了两个问题:
1:插入数据后,在 sqlplus 中居然没有显示
2:怎么样使用游标遍历数据库中的数据(那节课没去,悲剧了)
现在来说说解决
1: 每次要多数据库操作的时候,都必须重新与数据库进行连接,操作完成后,将操作提交
2:对于游标的使用,先得声明 exec sql include sqlca;
在对数据库进行连接后,
声明游标:
exec sql declare sx cursor for // sx 作为游标名
select s#, sname, age // 表中的项
from s; // 我们要查的表名
开启游标:
exec sql open sx;
然后用一个循环遍历:
for(;;)
{
}
推进游标,将表中的变量放到我们接受的变量中:
exec sql fetch sx into :s_no, :s_name, :s_age;
用一个条件跳出循环,那就是游标为 0:
if(sqlca.sqlcode != 0)
{
break;
}
这里可以打印出得到的内容。。。
完成循环后,关闭游标,提交我们的修改:
exec sql close sx;
exec sql commit release;
完成了上机的作业,打算下次上机开始做课设了。。。