使用oracle问题?(100分)

L

laizx

Unregistered / Unconfirmed
GUEST, unregistred user!
我好不容易在WINXP上装了一套ORACLE9,准备用来建一个模拟环境。但在使用中发现,
我直接使用SQL Explorer都可以对表进行select,insert等操作,而且结果也都正确。
但在程序中进行这些操作却不对,如select不出数据来,当然,程序本身不会有任何问题,
而insert可以,我发现,所有用到where的SQL语句都不能得到正确结果。
哪位大虾指教一下,是什么问题?
 
你的语句是怎么写的发出来。还有看看是不是因为大小写区分?如Col='aaa'->Col='AAA'
 
ORACLE中所有对象名都用大写表示的,
表a
select * from user_tables where table_name='A'
 
SQL Explorer是MS SQL的吗??为什么不用Oracle的SQL Plus?
是不是你的表结构字符的都用CHAR??试试字符型转为VARCHAR2看看..
 
程序用什么东西调用,bde还是ado
sql explorer能操作说明bde配置正确了。
程序里面database能不能open,保错还是结果得到的与需求不符?
你的说明太有限了,我想到无穷可能!
 
To 死灰:sql explorer是C++Build带的数据库工具,我已经改为varchar2试过了,还是
不对。
To all:我是使用ODBC连接,程序中database打开正确,语句如下:
qrySel->Active=false;
qrySel->SQL->Clear();
#if 1
qrySel->SQL->Add("select * from opt_func where opt_id=:eek:pt_id order by prog_code");
qrySel->ParamByName("opt_id")->AsString=asUserId;
#else
qrySel->SQL->Add("select * from opt_func order by prog_code");
#endif
qrySel->Prepare();
qrySel->Open();
大家可以看到,我特的测试了一下,当我不带条件时,能够选出记录来,但当我使用
上面带条件的语句时,却选不出数据来。当然,此处传入的asUserId的值在表opt_func
中肯定是存在的。至于大小写,我在opt_func中放的是小写,如auth,当然此处传入的也是小写。
再帮我看看
 
不是吧,注意不能用子查询哟@@@@@@@@@@@@@@@
 
补充一下,带条件时,执行不报错,只是选出的记录条数为0
 
在Oracle的SQL Plus运行一下带条件的SELECT语句..
select * from opt_func where opt_id='字符传' order by prog_code
要是得到的结果正如你所愿,而在DELPHI里面没有记录集就表示DELPHI里面需要调试..又或者数据连接有问题..
要是没有记录或结果跟你想要的不同就表示Oracle里面需要调试一下..
我想应该是你转换VARCHAR2后记录后面应该还有空格.所以选择不出来..
 
注意参数中是否含了空格或有大小写不匹配的情况,这会导致查询结果与你希望的不同。
建议尽量不要用ODBC,我从来没有在实际的项目中用ODBC连接Oracle,在使用BDE时,没有
遇到过令人费解的怪问题,但我的同事用ODBC联接Oracle,却屡屡遇到一些令人讨厌的怪问
题(在复杂的应用要求下),不管是用MS的驱动还是Oracle的驱动都遇到过。
 
你试试“死灰”的方法
Sachow
我用的ADO连接的oracle9.1.2 并不比BDE差呀
 
你可以使用DOA,我用过好几年了,效果很好
 
to antic_ant:对,在一定程度上说,是的,但请在COM+组件中尝试之,你将不会坚持你的观点。
 
用ADO连接Oracle不错啊,虽然在建立连接的时候速度比较慢。
 
不用Ado连接Oracle,难道用BDE吗?
曾经有一个项目用BDE,遭受到客户的一致痛骂!!!!!原因,过几天就必须重新启动一次,从此不用BDE!!!
 
过几天就必须重新启动,难道是BDE的错?
我去年10月做的一个COM+应用项目,就是用BDE连接Oracle 9i的,运行了半年服务器都没有重新启动,也没有出现非重新启动不可解决的故障。
 
多谢大家,我用bde连接试了一下,还是有问题,不过,我去找一个较新版的oracle
客户端连接工具再试一下。
sachow大虾,能告诉我哪儿能找到?
 
Oracle的官方网站上应该有免费下载,但需要首先填表注册。
我和大家的意见一样,你先确认是不是自己程序有问题,即相同的代码在其它人的机器上是否有相同的结果,然后再可以判断是不是自己的系统出了问题,如果是的话,可考虑不同程度的重装。
 
顶部