起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 159|回复: 8

【结贴】代码出错**

[复制链接]
发表于 2008-3-12 11:17:06 | 显示全部楼层 |阅读模式
var
  CellData2: String;
OrigData : Variant;
begin
  OrigData := DataSetBroker1.dataset.FieldByName(FDataInfo.FieldName [I]).AsVariant;
      if OrigData <> nil then
    begin
      CellData2 := '';
      case VarType(OrigData) of
         varSmallint,varByte, varInteger:
          begin
            CellData2 := CellData2 + objecthelper.ToString(VarAsType(OrigData,varInteger));
          end;
varDate:
          begin            
            CellData2 := CellData2 + objecthelper.ToString(VarAsType(OrigData,vardate));
          end;
在CellData2 := CellData2 + objecthelper.ToString(VarAsType(OrigData,vardate));这句出错。
提示

未命名.jpg

9.48 KB, 下载次数: 106

回复

使用道具 举报

 楼主| 发表于 2008-3-12 13:58:05 | 显示全部楼层
麻烦看一下,在线等
回复 支持 反对

使用道具 举报

发表于 2008-3-12 14:35:39 | 显示全部楼层
objecthelper.ToString(objecthelper.ToDelphiDateTime(VarAsType(OrigData,vardate)))
这样子用下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 14:43:09 | 显示全部楼层
是不出错了,但是数据不对,本来是2008-1-10成了39457
回复 支持 反对

使用道具 举报

发表于 2008-3-12 14:51:54 | 显示全部楼层
那你就这样用
Business.system.Sysutils.DateToStr(objecthelper.ToDelphiDateTime(VarAsType(OrigData,vardate)));
回复 支持 反对

使用道具 举报

发表于 2008-3-12 15:09:24 | 显示全部楼层
Variant类型转换是效率比较低的,如果这个函数在循环中调用的化,建议用字段类型做判断
直接用AsString  AsDateTime  AsInteger这样来取字段的值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 17:04:34 | 显示全部楼层
字段类型做判断怎么做?
回复 支持 反对

使用道具 举报

发表于 2008-3-12 17:13:25 | 显示全部楼层
if DataSetBroker1.DataSet.FieldByName('zd').DataType = TFieldType.ftInteger then
这样子
回复 支持 反对

使用道具 举报

发表于 2008-5-14 10:56:44 | 显示全部楼层
由于长时间没有回复,先结贴了,有问题请开新帖。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 02:39 , Processed in 0.043074 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表