请教:SQL SERVER数据库表记录读取及显示问题

gzllh 2003-08-20 05:57:40
我用的数据库是SQL Server 7.0,某表字段num的类型为numeric(18,0).其中一条记录对应的字段值为1234567890123456,在程序中利用语句
Query1->FieldByName("num")->AsString
得到的结果是"1.23456789012346E15",而我期望得到的是"1234567890123456",即原值.

另外,我用SQL Server自带的Enterprise Manager,直接在里面修改记录时,若输入1234567890123456,提交后自动变为1234567890123460.
不知是什么原因,怎么解决,请各位大侠多多指教。
谢谢!
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzllh 2003-09-27
  • 打赏
  • 举报
回复
谢谢各位大侠。第二问题解决后立马结贴。
知道第二个问题(SQL Server自带的Enterprise Manager,直接在里面修改记录时,若输入1234567890123456,提交后自动变为1234567890123460)的高手请不吝赐教。
谢谢!
gzllh 2003-09-24
  • 打赏
  • 举报
回复
谢谢各位大侠。
有谁知道第二个问题(SQL Server自带的Enterprise Manager,直接在里面修改记录时,若输入1234567890123456,提交后自动变为1234567890123460)的解决办法吗?请不吝赐教。
谢谢!
ljianq 2003-09-22
  • 打赏
  • 举报
回复
显示问题,试试:
AnsiString s=FormatFloat("#",Query1->FieldByName("num")->AsFloat);
summerrain9 2003-09-22
  • 打赏
  • 举报
回复
你用Query1->FieldByName("num")->Value;试试看
gzllh 2003-08-21
  • 打赏
  • 举报
回复
关于第一个问题:若用int,最大值为2147483647,才10位数字,系统要求18位。若用char,运算不方便,且系统修改工作量太大。
关于第二个问题:用update语句没问题,但在用Return all rows 返回的记录中修改就出现上述现象。
哪位大侠知道怎么解决这两个问题吗?请不吝指教。多谢!!!
CityHost 2003-08-21
  • 打赏
  • 举报
回复
第一个问题能不能不用numeric(18,0),直接用int和CHar。
halibut 2003-08-20
  • 打赏
  • 举报
回复
第二个问题我没发现,我的很正常!!!

1,178

社区成员

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

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