- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2014-10-16 16:17 编辑
BetonArmEE 发表于 2014-10-16 13:46 ![]()
你说的语句和代码是什么意思?
pro*c没试过,我的原生环境是PostgreSQL,理论上只要遵循ESQL标准应该 ...
语句就是SQL语句,代码就是C程序代码。
恐怕不同的数据库需要不同的代码生成器。
总体来说,你的代码量不大,比我的要好改一些。
02.SQLACTION "UPDATE userinfo SET * WHERE user_id =" 。。。。。。。。。。。。。。。。。。这个恐怕不行吧?
UPDATE userinfo set user_name=:user_name,user_email=:user_email,user_use_time=to_date(:user_use_time,'YYYY-MM-DD HH24:MI:SS') where user_id=:user_id;
user_use_time=to_date(:user_use_time,'YYYY-MM-DD HH24:MI:SS' ) ....... 这个是我添的,实例ORACLE和DB2的特殊之处。
在生成SQL语句时,要针对不同的数据库的特殊格式。
一个表,有几个日期时间列,不同的格式,写这个,很烦。所以有语句生成器就方便多了。
甚至:
where beg_date <= :beg_date and end_date >= :beg_date ..... 手写的。
经过语句生成器,自动变成:
where beg_date <= to_date(:beg_date,'YYYY-MM-DD') and end_date >= to_date(:beg_date,'YYYY-MM-DD') .....
生成器看到了模板中的数据类型和格式。
DB2会变成:
where beg_date <= to_date(?,'YYYY-MM-DD') and end_date >= to_date(?,'YYYY-MM-DD')
SYBASE、MYSQL和这个又不一样,有他们的格式。不同数据库的生成器不同,应用代码不需要怎么变化。
|
|