`

Delphi BDE('Type mismatch for field "xxxx", expecting: Integer actual: Float')

阅读更多
碰到了这个问题,数据库中某字段,比如l_id类型是number(10)
IDE:delphi5;
数据库连接方式:BDE
数据库:oracle 10.2.0

问题出现在添加字段的时候,l_id是number(10)照理说add fields应该对应TIntegerField
可是选出来的结果是TFloatField。
手动修改pas和dfm文件中字段类型后,将TQuery置为true报错
('Type mismatch for field "xxxx", expecting: Integer actual: Float')
连接不上

对于这里,应该有一个类型转换的问题,为何本来是整型的却被delphi,精确的说bde给识别成了float。google一下,中文网页优先,有人有碰到该问题,只是无人解答,或者没有完全搞定
CodeGear中终于发现提示了:
http://www.tek-tips.com/viewthread.cfm?qid=75814&page=352

亮点在这一段:
There is an TIntegerField which is receiving a field from a query.  The declaration of the field in the database is number (10, 0).  It is a known attribute of Oracle that all number fields are stored internally as floats.  The automatic conversion of these fields in BDE is governed by settings in the BDE Admin utility under the Configuration/Drivers/Native key.  For Oracle 8i to enable the return of integers you must change the entries for DLL32, Vendor Init and enable integers.  This much I think is true.

检查我的BDEADMIN,drivers中的native-oracle中,将enable integer置为true,关闭重启生效,再到D5中试,NND,还不行。再检查database中建的实例,这里也有一个enable integer,修改之,再试,终于可以识别出TIntegerField了。

【原因分析】Oracle中是没有整型这个概念,只有一个数据类型,number,可以定义整型和浮点型,最终在oracle的存储方式中都被存为浮点型(其实到底都是字符串);而BDE中有对数据类型转换的控制开关,平时是置为false的(除integer外还有BCD)。需要时要打开。

【评论】BDE引发的血案

【结论】Delphi真的没落了,关注者甚少...
分享到:
评论

相关推荐

    BDE FOR delphi xe11

    **BDE for Delphi XE11:数据库引擎与Delphi集成** BDE,全称为Borland Database Engine,是Borland公司为Delphi和C++Builder开发的一款数据库访问技术。它提供了一个统一的接口,允许开发者通过SQL语言与各种...

    delphi bde 64位

    Delphi BDE 64位是专为64位操作系统设计的数据访问组件,它扩展了Embarcadero Delphi开发环境的功能,使得开发者能够在64位环境下充分利用系统资源,进行高效的数据存取。BDE全称是Borland Database Engine,是...

    bde Delphi BDE打包 Delphi BDE打包 程序打包。。。配置BDE(如果你用了BDE的话),如果没有用BDE,用ADO,那建议在程序初始化

    本文将深入探讨BDE(Borland Database Engine)在Delphi中的应用、打包过程以及如何根据需要选择合适的数据库访问技术。 BDE,全称为Borland Database Engine,是Borland公司为Delphi和C++Builder开发的一种数据库...

    BDE for Delphi 10.2.2安装包

    **BDE for Delphi 10.2.2 安装包详解** BDE,全称为Borland Database Engine,是Borland公司为Delphi和C++Builder等开发环境提供的一种数据库访问技术。它是一种中间层数据库访问组件,允许开发者通过统一的API来...

    Delphi BDE数据库驱动 Win XP Win7 Win8下可用

    Delphi BDE数据库驱动 Win XP Win7 Win8下可用,BDE(Borland Database Engine)是Inprise公司的数据库引擎,它结合了SQL Links允许程序员通过它能够连接到各种不同的数据库。BDE是BORLAND 数据库引擎的缩写,它是用来...

    delphi bde 访问 oracle

    Delphi BDE 访问 Oracle 详解 Delphi 是一个流行的开发工具,而 Oracle 是一个强大的关系数据库管理系统,本文将详细介绍如何使用 Delphi 的 BDE 功能来访问 Oracle 数据库。 一、系统环境 ---------------- 在...

    bde for delphi xe 10.3 bdeinstall

    标题中的“bde for delphi xe 10.3 bdeinstall”指的是为Delphi XE 10.3版本提供的BDE(Borland Database Engine)安装程序。BDE是 Borland 公司开发的一个数据库访问接口,它在早期的Delphi版本中广泛用于连接各种...

    最新BDE for Delphi 10.3

    bde installer for rad studio delphi c_builder 10.3,该BDE为支持最新版本的Delphi XE 10.3,本人已经测试,可以用。该资源仅仅用于个人学习,严禁用于商业开发,学习完毕自行删除,不得传播!

    BDE for delphi 10.1 berlin

    **标题解析:** "BDE for delphi 10.1 berlin" 指的是用于 Delphi 10.1 Berlin 版本的 Borland Database Engine(BDE)安装资源。BDE 是 Delphi 和 C++Builder 开发环境中用于数据库访问的组件库,它提供了一种中间...

    最新版本BDE Delphi XE 10.2 BDEInstall

    BDE (Borland Database Engine) 是 Delphi 开发环境中的一种数据库访问技术,它为 Delphi 开发人员提供了一个统一的接口,以便于与多种不同的数据库系统进行交互,包括 Oracle、MySQL、SQL Server 和 Paradox 等。...

    30359_BDE_Installer for Delphi 10 seattle

    【标题】"30359_BDE_Installer for Delphi 10 seattle" 提供的是一个针对 Delphi 10 Seattle 的 BDE(Borland Database Engine)安装程序。BDE 是 Borland 公司开发的一个数据库访问中间件,它在 20世纪90年代至21...

    BDE for RAD Studio, Delphi, C++Builder 10.3 Rio.rar

    标题中的"BDE for RAD Studio, Delphi, C++Builder 10.3 Rio"指的是Borland Database Engine(BDE)在Embarcadero的RAD Studio、Delphi和C++Builder 10.3 Rio版本中的应用。BDE是早期Delphi和C++Builder用于数据库...

    BDE Installer for 10.1 Berlin

    标题 "BDE Installer for 10.1 Berlin" 指的是一个专为 Delphi 开发者设计的安装程序,用于在 Delphi 10.1 Berlin 版本中安装和配置 Borland Database Engine(BDE)。BDE 是 Delphi 和 C++Builder 等早期 Borland ...

    bde installer for rad studio delphi cbuilder 10.1 berlin

    “bde installer for rad studio delphi cbuilder 10.1 berlin” 指的是一个专门用于 RAD Studio 10.1 Berlin 版本的 Borland Database Engine (BDE) 安装程序。BDE 是 Delphi 和 CBuilder 开发环境中的一种数据访问...

    手动注册bde delphi 7

    BDE是Delphi早期版本中用于数据库访问的一个重要组件,它提供了一个中间层,使得Delphi应用程序可以与多种数据库系统进行交互,如Oracle、SQL Server、Paradox等。 描述中提到的操作步骤是这样的:当遇到无法正常...

    Delphi的BDE文件说明

    **Delphi的BDE(Borland Database Engine)文件详解** BDE是Delphi中用于数据库访问的一个组件,它提供了一种统一的方式来访问多种不同类型的数据库。以下是对BDE目录下重要文件及其作用的详细说明: ### 不可缺少...

    delphi BDE动态链接terryDB

    BDE,全称Borland Database Engine,是Delphi早期用于数据库访问的一个重要组件。本文将深入探讨如何在Delphi中实现BDE动态链接以及与terryDB数据库的交互。 BDE是Borland公司为Delphi和C++Builder等开发工具设计的...

    开发delphi BDE数据库应用程序

    开发 Delphi BDE 数据库应用程序涉及的关键知识点包括以下几个部分: 1. **BDE(Borland Database Engine)**:BDE 是 Delphi 提供的一种数据库访问技术,它是一组中间件,提供了 API 函数库来连接和操作各种类型的...

    Delphi 从内存中修改数据源码示例

    在 Delphi 开发环境中,内存中的数据修改是一个常见的任务,特别是在处理数据库或其他数据源时。本示例将探讨如何在 Delphi 中直接操作内存中的数据,以实现对数据源的修改。Delphi 提供了丰富的组件库和语言特性,...

    最新版本BDE Delphi XE 10.2 BDEInstall(版权归原作者与原公司所有,该资源仅仅用于个人学习,严禁用于商业开发,学习完毕自行删除,不得传播!).rar

    **BDE (Borland Database Engine)** 是一个重要的组件,由Borland公司开发,用于在Delphi编程环境中提供数据库访问功能。BDE是Delphi早期版本中的核心部分,它为开发者提供了统一的接口来访问多种不同的数据库系统,...

Global site tag (gtag.js) - Google Analytics