就是一个简单的 select 语句 放到pl/sql 执行正常 放到 adoquery 却异常 驱动用的是 ; oracle provider for ole db
select marc.MARC_REC_NO, case PERI_TYPE when '0' then '正常刊' when '1' then '改名刊' when '2' then '停刊' when '3' then '停定刊' else '不定' end as 状态, case ORD_FLAG when '0' then '未发订' when '1' then '已发订' else '不定' end as 发订状态 from marc ,PERI_ORD_DETL where marc.marc_rec_no =PERI_ORD_DETL.marc_rec_no and PERI_ORD_DETL.peri_ord_cata_id='4BE9F5BA819749C984CE13D922E22C87'经测试发现 只要sql 里包含一个case 可以执行 多个case 就异常
select marc.MARC_REC_NO, case PERI_TYPE when '0' then '正常刊' when '1' then '改名刊' when '2' then '停刊' when '3' then '停定刊' else '不定' end as 状态, case ORD_FLAG when '0' then '未发订' when '1' then '已发订' else '不定' end as 发订状态 from marc ,PERI_ORD_DETL where marc.marc_rec_no =PERI_ORD_DETL.marc_rec_no and PERI_ORD_DETL.peri_ord_cata_id='4BE9F5BA819749C984CE13D922E22C87'经测试发现 只要sql 里包含一个case 可以执行 多个case 就异常
第一次 delphi+oracle 没想到这么不顺 我原本以为 pl/sql里能执行的 放到adoquery里都可以 现在看来不是
再来一下,不行俺也没办法了
是不是语句有问题吧
可以改成case when xx='1' then ... when xx='2' ...搜索模式看看
或者oracle也可以用decode函数实现相同的功能
2: 改用BDE
如果是第三方数据库的话,我用delphi+oracle 用了12年,没有任何问题,如果是SQL SERVER,MYSQL用ADO可以,但只能是独立功能模块,ERP成个方案用ADO就要小心了
http://blog.csdn.net/chinawcs/article/details/7615687