ADO操作大整数的问题

zjsyw 2005-08-24 08:20:44
我用ADO连接了数据库,用ADOQUERY取得一数据集,有一字段为整数,其长度18位,这时用ADOQUERY->FIELDBYNAME("字段")->ASINTEGER就报溢出错误,如何处理。谢谢
...全文
202 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjsyw 2005-08-29
  • 打赏
  • 举报
回复
再次谢谢大家,季大哥,会不会和数据库有关,不管怎么说先改SELECT语句混过去。结贴
zjsyw 2005-08-28
  • 打赏
  • 举报
回复
在SYBASE里没TO-CHAR函数,用CONVERT函数
zjsyw 2005-08-28
  • 打赏
  • 举报
回复
季大哥,确实是这行错了,
try
{
DM->thread_get_djls_sybase->Close();
DM->thread_get_djls_sybase->SQL->Clear();
DM->thread_get_djls_sybase->SQL->ADD(sql_string);
DM->thread_get_djls_sybase->Open();
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
ShowMessage("查询结束"); //测试时加的
Edit1->Text=DM->thread_get_djls_sybase->FieldByName("id")->AsString;
运行后,先显示“查询结束”。然后报错。
不过实在没办法,xxiao07()兄弟的也是一个解决途径。

jishiping 2005-08-28
  • 打赏
  • 举报
回复
我在自己的机器上,ConnectionString是使用BCB的向导Build做的,直接选择的是“Microsoft OLE DB Provider for SQL Server”,在我自己的机器上的SQL Server 2000上,18位的大数没有显示任何错误。
xxiao07 2005-08-27
  • 打赏
  • 举报
回复
我在ORACLE中也有这种问题,我只得这样做select to_char(num),.........
zjsyw 2005-08-27
  • 打赏
  • 举报
回复
运行过查询后,我在一个EDIT里显示该字段内容。
Edit1->Text=DM->thread_get_djls_sybase->FieldByName("id")->AsString;
这时就抱错,“overflow while coverting variant to type (decimal) into type (currency)”
zjsyw 2005-08-27
  • 打赏
  • 举报
回复
sybase 11的数据库,字段类型是numeric(18,0),我都试了确实不行。谢谢各位大侠了。我都不知道该怎么办了
jishiping 2005-08-27
  • 打赏
  • 举报
回复
你在IDE里DEBUG了没有,你确定是在
Edit1->Text=DM->thread_get_djls_sybase->FieldByName("id")->AsString
这一行报错“overflow while coverting variant to type (decimal) into type (currency)”?

我认为这是不可能的。一定是其它地方的错。
zjsyw 2005-08-26
  • 打赏
  • 举报
回复
季大哥,不行啊,一样报错
jishiping 2005-08-26
  • 打赏
  • 举报
回复
我测试了,没有问题的。即使使用AsInteger,只是数据不正确,也不会报错的。
hthunter 2005-08-26
  • 打赏
  • 举报
回复
是不是有多余的空格?
改成StrToInt64(ADOQUERY->FieldByName("字段")->AsString.Trim());试试看
hthunter 2005-08-26
  • 打赏
  • 举报
回复
sql server的bigint:
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

超过了18位,呵呵

不过int64应该可以处理才对啊
jishiping 2005-08-26
  • 打赏
  • 举报
回复
打错了,一般的数据库的int类型的字段,长度只有4个Byte,不可能存放18位的整数的。
jishiping 2005-08-26
  • 打赏
  • 举报
回复
你用的是什么数据库?字段的类型是什么?一般的数据库的int类型的字段,长度只有8,不可能存放18位的整数的。
jishiping 2005-08-25
  • 打赏
  • 举报
回复
使用AsString吧。当你需要换作证书操作时,使用__int64就可以了。比如:
__int64 nVal = StrToInt64(ADOQUERY->FieldByName("字段")->AsString);
CACACACACA 2005-08-24
  • 打赏
  • 举报
回复
看看BCB的数据类型。
换成DOUBLE,
zjsyw 2005-08-24
  • 打赏
  • 举报
回复
自己顶
zjsyw 2005-08-24
  • 打赏
  • 举报
回复
AsFloat也不行,难道只有在select 语句里将字段/10000000000才行吗?有碰到这种问题的朋友帮帮我。
本文介绍C#访问操作Access数据库的基础知识,并提供一个相关的例程。 1.通过ADO.NET的OleDb相关类来操作Access 主要知识点如下: using System.Data.OleDb; using System.Data; 连接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb"; 建立连接:OleDbConnection connection = new OleDbConnection(connectionString); 使用OleDbCommand类来执行Sql语句: OleDbCommand cmd = new OleDbCommand(sql, connection); connection.Open(); cmd.ExecuteNonQuery(); 2.取得Access自增标识字段在插入数据后的id值 cmd.CommandText = @"select @@identity"; int value = Int32.Parse(cmd.ExecuteScalar().ToString()); return value; 3.执行事务 需要用到OleDbTransaction,关键语句如下: OleDbConnection connection = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); OleDbTransaction transaction = null; cmd.Connection = connection; connection.Open(); transaction = connection.BeginTransaction(); cmd.Transaction = transaction; cmd.CommandText=sql1; cmd.ExecuteNonQuery(); cmd.CommandText=sql2; cmd.ExecuteNonQuery(); transaction.Commit(); 4.执行查询,返回DataSet OleDbConnection connection = new OleDbConnection(connectionString); DataSet ds = new DataSet(); connection.Open(); OleDbDataAdapter da = new OleDbDataAdapter(sql, connection); da.Fill(ds,"ds"); 5.分页查询 分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。 以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page 代码这里下载AccessDBUtilDemo.rar (191.37 KB , 下载:999次) 本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。 本例程演示了: 1.Access数据库的插入,更新,修改,查询; 2.带参数的sql语句的使用,而不是拼SQL; 3.使用DataReader的分页查询,而不是用嵌套的SQL语句来分页; 4.用事务同时执行多个SQL语句; 5.在插入数据的同时返回最新的ID值; 6.整型,实型,字符串,日期型,布尔型五种数据类型的操作; 7.使用正则表达式来验证整数和实数; 8.listview用来显示数据的一些基本用法。 本示例不包括: 1.高效的分页查询,仅仅是提供了一种分页的方法,但我认为DataReader应该比嵌套的SQL语句快(未测试)。 2.完善的分页封装,只提供了分页的简单包装。 3.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。 4.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。
Windows Form、100%GrapeCity自主开发、全面支持ADO.NET 继承了El Inputte (日本产品名为InputMan)多个版本的卓越性能的基础上,基于.NET Framework开发的新版本El Inputte for NET中文版即将隆重上市。 El Inputte 从1993年第一版开发完成以来,一直受到众多软件开发人员的喜爱。.NET版El Inputte 产品适应全新的开发技术平台,采用GrapeCity独特的控件架构,将输入界面控制所必需的各种功能,通过纯粹.NET方式融入到产品之中。 针对最终用户在计算机输入操作中可能导致输入错误、输入陷阱、误操作等方面的各种使用情况,El Inputte采用对输入控制防患于未然的特别设计方式,帮助软件开发人员自然地实现流畅的软件输入界面。El Inputte for .NET为应用软件构建最为根本的输入界面提供强有力的支持。 日期输入控件 利用日历和Spin按钮实现可视的日期和时间输入方式。采用多种丰富的日期表现格式,非常适合用于多种途径的输入界面。特别提供了诸如指定程序获得focus时激活字段(active field)等非常细致的chariot控制功能 日历输入控件 能够实现设定节假日和公司特别休假、和历、多个月份表示、多个日期读取等功能。提供Outlook、MouthCalendar、系统三种外观模式,并支持客户定制方式的外观模式。 数值输入控件 通过三位数字分割号、小数点、负号、货币符号、负数颜色表示等功能设置,能够更自然地表现数值;分别获得数值的整数和小数部分、数据库为输入数据采用设定的NULL等文字表示等功能,构成非常实用性的输入界面。 计算器控件 具有记忆功能、方便的计算器;各个按钮上的文字、颜色以及计算器风格等都可以通过设置调整;还能够任意设置各个按钮的热键、计算结果的表示框。 Container控件 可以把El Inputte的各个控件放在Container控件上来增加三维效果和增加标题。三维效果可以对内外边框的大小和颜色、控件边界线上下左右的间隔等进行设置;标题栏可以配置在空间的左边或上边。 文本输入控件 可以通过关键字制定文字种类;当输入指定以外的文字时,自动把平假名、片假名、半角数字、全角数字等变换成指定的文字;还具有自动获得注音符号,以及自动确定平假名、片假名、英文字母等功能。 格式输入控件 可以设定电话号码、邮政编号等格式输入方式;通过规定的表现方式,自动去除不必要的空格;当设定一组文字列表(如:参加/不参加/未定)后,输入是可以用Spin按钮选择。 基本技术: 方便的格式设定 利用特定的输入格式对客户输入进行一定的限制和引导 输入自动检查 当输入内容超过了规定范围或文字种类时,触发Event来进行细致的控制 快捷键 可以设置任意快捷键来完成清除控件内容、移动Focus和chariot等动作 用Spin按钮快速增减数值 通过鼠标对指定field的值进行增减操作;对格式控件可以用鼠标选择文字列表中的内容。 用Dropdown输入框辅助输入 日历和计算器控件提供能够客户定制的外观和功能的Dropdown输入框 调整表示位置 box的高度具有自动设置功能;能够根据其它控件的大小自动优化调整尺寸以外,并能设置输入区域水平和垂直方向上上下左右配置的间隔。 ADO.NET连接 支持.NET Framework提供的ADO.NET连接;充分利用强大的ADO.NET功能,构建真正的数据库输入前端。 属性页 精炼的属性设置页面能够最大限度地减小编程工作量。 格式设定 输入自动检查 快捷键 Spin按钮 Dropdown输入框 表示位置调整 ADO.NET连接 属性页。 运行环境 Visual Studio.NET (Windows 2000/XP) Windows Form用控件 CD-ROM驱动器 30MB以上可用硬盘空间
基本信息 书名:高等学校计算机应用规划教材:Visual C# 2010程序设计教程 作者: 陈建伟 出版社: 清华大学出版社 页码:326 出版日期:2012-06-01 内容简介   《高等学校计算机应用规划教材:Visual C# 2010程序设计教程》详细介绍了Visual C# 2010程序设计的基础知识、基本方法和应用技巧,共分14章,主要内容包括.NET平台与Visual Studio 2010开发环境、C#语言基础及面向对象程序设计、C#程序设计、C# Web程序设计、C#泛型编程、C#数据库程序设计及ADO.NET等相关知识,并在最后讲解了运用C#处理文件和进行LINQ语言集成查询的内容。   本书的讲述由浅入深、循序渐进,并针对各章知识点附以大量的示例程序和习题。通过本书的学习,读者可以逐步掌握C#程序设计。   本书难度适中,实例丰富,可操作性强,可作为高等学校计算机相关专业的教材或参考用书,也可供广大程序员参考。 目录 第1章.NET平台与Visual Studio开发工具 1.1 Microsoft.NET平台 1.1.1 .NET Framework 4.0概述 1.1.2 理解命名空间 1.2 Visual Studio 2010简介 1.2.1 Visual Studio 2010开发环境概览 1.2.2 菜单栏 1.2.3 工具栏 1.2.4 “属性”及“解决方案资源管理器”面板 1.2.5 其他面板 1.2.6 Visual Studio 2010的新特性 1.3 创建控制台应用程序 1.4 本章小结 1.5 习题 第2章 Visual C# 2010语法基础 2.1 C#语言概述 2.2 C#基础元素 2.2.1 语句 2.2.2 标识符与关键字 2.3 变量 2.3.1 变量的命名 2.3.2 变量的声明和赋值 2.4 数据类型 2.4.1 简单类型 2.4.2 结构类型 2.4.3 枚举类型 2.4.4 引用类型 2.4.5 装箱与拆箱 2.4.6 数据类型的转换 2.5 运算符与表达式 2.5.1 赋值运算符与表达式 2.5.2 关系运算符与表达式 2.5.3 逻辑运算符与表达式 2.5.4 其他运算符与表达式 2.5.5 运算符的优先级 2.6 Visual C# 2010的新特性 2.6.1 大整数类型(Biginteger) 2.6.2 动态数据类型 2.6.3 命名参数和可选参数 2.7 本章小结 2.8 上机练习 2.9 习题 第3章 程序流程控制 3.1 选择结构程序设计 3.1.1 if语句 3.1.2 switch语句 3.2 循环结构程序设计 3.2.1 for语句 3.2.2 for each语句 3.2.3 while语句 3.2.4 do---while语句 3.2.5 跳出循环 3.3 异常处理结构 3.3.1 异常的产生 3.3.2 处理异常 3.4 本章小结 3.5 上机练习 3.6 习题 第4章 数组与集合 4.1 数组 4.1.1 数组的声明 4.1.2 -维数组的使用 4.1.3 多维数组的使用 4.2 集合 4.2.1 集合的定义 4.2.2 集合的使用 4.2.3 常用系统预定义的集合类 4.3 本章小结 4.4 上机练习 4.5 习题 第5章 C#面向对象程序设计基础 5.1 面向对象程序设计概述 5.2 类与对象 5.2.1 类与对象概述 5.2.2 面向对象程序设计相关概念 5.2.3 类的声明与System Object类 5.2.4 对象的声明与类的实例化 5.2.5 类成员 5.2.6 类成员的访问限制 5.2.7 this关键字 5.3 构造函数与析构函数 5.3.1 构造函数 5.3.2 析构函数 5.4 本章小结 5.5 上机练习 5.6 习题 第6章 域、属性与事件 6.1 域 6.1.1 域的初始化 6.1.2 只读域与readonly关键字 6.2 属性 6.2.1 属性的声明 6.2.2 属性的访问 6.3 事件 6.3.1 委托 6.3.2 事件的声明 6.3.3 事件的订阅与取消 6.4 本章小结 6.5 上机练习 6.6 习题 第7章 方法 7.1 方法的声明 7.2 方法的参数 7.2.1 值类型参数传递 7.2.2 引用类型参数传递 7.2.3 输出类型参数传递 7.2.4 数组类型参数传递 7.3 静态方法 7.4 方法的重载 7.5 外部方法 7.6 操作符重载 7.6.1 一元操作符的重载 7.6.2 二元操作符的重载 7.7 本章小结 7.8 上机练习 7.9 习题 第8章 继承与多态 8.1 什么是继承 8.2 使用继承机制 8.2.1 基类和派生类 8.2.2 bas

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧