环境:DELPHI6、ORACLE 816,项目组开发机系统:WIN2K和WINXP。数据模型设计:power designer 9
说来话长,11月份,我们在开发过程中发生了一件很奇怪的事情:ORACLE中有个别表(使用BDE连接控件)在个别机器上不能正常显示数据。系统(DELPHI/SQL EXPLORER)提示的是数据(或日期)格式不正确。但是用SQL PLUS却没有任何问题。在一头雾水,走投无路的情况下,我们又偶然发现,使用ADO能够解决这些问题!加上时间紧迫,于是项目组不假思索,立刻换成了清一色的ADO接口。
本来以为从此就平安无事了。谁知在项目即将结束的12月底,同样的情况发生在了ADO上面:几乎就是那些当初不能在BDE上面显示的数据表,如今在ADO上面也罢工了!而且情况更恐怖:如果不能正常显示的ADO数据集被OPEN,系统会有三种反应:1ADO报错:未指定的错误;2delphi报错:xxxx内存错误,oooo不能为”READ“;3没有任何东西报任何错误,delphi直接退出来。而且每次任取其一,不可预测………………
我们开始怀疑,是不是部分机器系统真的出了问题?
于是我们用剩余没有问题的机器完成剩余的代码,编译拿到其他地方(指项目小组以外的那些机器,包括客户的工作机)执行,发现这个问题非常普遍。几乎就没有能够正常运行的机器(其他机器一样的也有很多种反应)!
从下周一算起,我们只有一周的时间了。法律无情啊!万般无奈之余,我明知道这个问题根本不可能很完整的描述,还是试着贴上来。请大家根据我写的情况,帮我把把脉。万分感谢大家了!
总结一下。我们需要解决的问题主要在这些地方:
1 到底是数据本身有问题还是delphi的兼容上有问题?
2 如果是数据本身有问题,要怎么样才能解决?换数据库?
3 如果是delphi的兼容问题,那么要怎么做才能屏蔽这些兼容不足?换开发工具是肯定没有时间了…………
4 会不会还可能有其他我想不到的地方出了错?
这个事情给我们项目组的打击非常的大。因为我们就算是再努力工作,如果老是被迫要和这些莫名其妙的问题作斗争,谁的积极性都会被消磨的。所以作为小组的一员,我真的希望能够有高手给我们指条明路,让同伴们早日走出这段苦难。真的,再次谢谢大家了!
说来话长,11月份,我们在开发过程中发生了一件很奇怪的事情:ORACLE中有个别表(使用BDE连接控件)在个别机器上不能正常显示数据。系统(DELPHI/SQL EXPLORER)提示的是数据(或日期)格式不正确。但是用SQL PLUS却没有任何问题。在一头雾水,走投无路的情况下,我们又偶然发现,使用ADO能够解决这些问题!加上时间紧迫,于是项目组不假思索,立刻换成了清一色的ADO接口。
本来以为从此就平安无事了。谁知在项目即将结束的12月底,同样的情况发生在了ADO上面:几乎就是那些当初不能在BDE上面显示的数据表,如今在ADO上面也罢工了!而且情况更恐怖:如果不能正常显示的ADO数据集被OPEN,系统会有三种反应:1ADO报错:未指定的错误;2delphi报错:xxxx内存错误,oooo不能为”READ“;3没有任何东西报任何错误,delphi直接退出来。而且每次任取其一,不可预测………………
我们开始怀疑,是不是部分机器系统真的出了问题?
于是我们用剩余没有问题的机器完成剩余的代码,编译拿到其他地方(指项目小组以外的那些机器,包括客户的工作机)执行,发现这个问题非常普遍。几乎就没有能够正常运行的机器(其他机器一样的也有很多种反应)!
从下周一算起,我们只有一周的时间了。法律无情啊!万般无奈之余,我明知道这个问题根本不可能很完整的描述,还是试着贴上来。请大家根据我写的情况,帮我把把脉。万分感谢大家了!
总结一下。我们需要解决的问题主要在这些地方:
1 到底是数据本身有问题还是delphi的兼容上有问题?
2 如果是数据本身有问题,要怎么样才能解决?换数据库?
3 如果是delphi的兼容问题,那么要怎么做才能屏蔽这些兼容不足?换开发工具是肯定没有时间了…………
4 会不会还可能有其他我想不到的地方出了错?
这个事情给我们项目组的打击非常的大。因为我们就算是再努力工作,如果老是被迫要和这些莫名其妙的问题作斗争,谁的积极性都会被消磨的。所以作为小组的一员,我真的希望能够有高手给我们指条明路,让同伴们早日走出这段苦难。真的,再次谢谢大家了!
解决方案 »
- 调用VC写的dll,函数中含有char *参数时,用FreeLibrary(hMod);时出错...
- 高手看来简单的问题,却让想放弃学delphi了!救救我呀!
- 非典的三条药方,供大家预防,
- IntraWeb 5.1 发布了,谁有 for Delphi 7 的?
- fastreport中怎样改变条码打印中字体的大小?
- 如何制作像google的引擎!
- VCL能不能给DLL用
- 做网管要掌握什么知识和技能?
- 为什么没有高手进来帮我解决这个问题呢?
- DataSetProvider1 SQL分组统计
- BDE连接Access出现“不可识别的数据库格式”错误 (Delphi7、8,Office 2003)
- 咨询!!!!!!
如果不是 换成这个试试 实话实说ORACLE 不是特别熟 看来你真很急 如果我说的不是 发消息给其他版竹
還沒有發現你的問題
----------------------------
如果是BDE+DELPHI的话,注意一下本地机器的日期格式,程序开始运行的时候用:
DateSeparator := '-';
ShortDateFormat := 'yyyy-mm-dd';
LongDateFormat := 'yyyy-mm-dd HH:mm:ss';
初始化一下.
我碰到过我的客户机器的日期分隔格式为"/"出错,按照上面做了就解决了.
>>ORACLE中有个别表(使用BDE连接控件)在个别机器上不能正常显示数据
-->你当初应该把这些出问题的数据找出来,或者说总结追踪一下,是什么类型的数据才会出错.
ps:应该不用怀疑oracle数据库有问题,肯定是你的程序有问题.
但事情还是要解决,我来回答大家的问题吧!
LVOLCANO:如果真的是这个问题的话…………我只有辞职,找家不用d版的公司啦!
edgethinking:你说的不同方法指哪方面呢?
BoningSword:你的格式初始化我试过了,依然报错。ado还是报内存错误,然后退出。bde错误信息如下:
Project Project1.exe raised exception class EDBEngineError with message 'General SQL error.[oracle][odbc]Invalid datetime format.'.process stopped.use step or run to continue.
希望对大家有帮助
select * from table where datem=to_date('时间的字符格式','yyyy-MM-dd hh24:mi:ss')
ado 中我使用的时候也是有很多的时间问题,用这样的一般可以解决,
好运!!!
Access:
select * from Sample where SampleDate=#2004-01-12#
Sql Server:
select * from Sample where SampleDate='2004-01-12'
不知道在oracle中存不存在这样的问题,你试试吧。
看看有问题的机器和没问题的机器设置是否一样
DELPHI7、ORACLE 9i 、WIN2K、XP,power designer 9 但我使用的是BDE,数据也是导入的,你确信在导入数据时没出错吗?有同样遭遇很想帮你,祝好运!
上句按字面意思是:普通的(一般的)SQL错误..[oracle][odbc] 有病的时间格式可是…………有一部分机器没有这个问题啊!大家的delphi都是一样的,操作系统也没有什么特别的地方好奇怪哦,这个我也就不知道了,数据导入出现错误或者哪里的SQL字段定义出问题,不妨就按照提示来仔细检查错误
alter session set nls_date_format='yyyy-mm-dd'。后来Invalid datetime format这个提示倒是没有了,却出来一个新的错误提示:
general sql error.
[oralce][odbc]restricted data type attribute violation.
而且,我在google上基本上搜索不到这条错误信息的相关资源,难道没有几个人遇到这种问题?
受限的数据类型属性违例不解,不解帮你顶
结合的并不是很好
我用DELPHI7+ORACLE817
有很多时候ORACLE的错误DELPHI无法正常显示
不用BDE和ADO
用第三方控件ODAC
已经使用了一段时间
还没有发现非常严重的问题
使用ODAC的速度也非常快
它只对ORACLE
不行你就换上试一试
下载的地方很多
如果以前使用BDE改过来不是很困难
应该是可以的
Column unknown
BIRTHDAY
Client SQL dialect 1 does not support reference to DATE datatype.会不会是dialect 3才能支持DATE类型?
可是我又不知道在哪里设置。同病相怜,偶也发一篇。
程序刚调试好的时候挺顺的没有出现问题,可是在其它机子上用同样的方法建立了bde联接,一运行程序就出错后来发展到本机也出错,不解???
公司也是用的oracle+delphi7/delphi6+bde/ado/odac多了,但是沒有你說的這種情況亞
不用datetime的原因是各种计算机上日期格式不同,所以干脆用char,只是在程序启动时约束一下日期格式,输入日期后再转换成日期格式;
楼主的问题没遇过,祝你好运!!
本人在设计数据库时如果用到日期时都用以下几种格式表示:
yyyymmdd
yyyy-mm-dd
yyyymmddhhmiss
yyyy-mm-dd hh:mi:ss
而且字符也能比较,且不存在系统兼容性问题