我已经给这一小段代码搞得头都大了。help!!(各位上次说的都行不通了) 某些子段的值为空另:query2.Fields[130].value :=s +query2degf.AsFloat ;——〉query2.Fields[130].asfloat :=s +query2degf.AsFloat ; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请在BDE中的enable bcd设为True 因为 query2.fields[k] 对应数据库的值是字符型,所以如果有这样的值 query2.fields[k].value = '' ,你再用 query2.fields[k].AsFloat 将出错:‘’is not a valid floating point value.你应该先检查 if Length(query2.fields[k].AsString)=0 then Continue; // 或者其他语句 谢谢各位,我会去试一试的,不过还有一事请教是:如何知道想query.fields.value返回的值的类型呢? 通过 query.fields.datatype 属性(TFieldType)type TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid); s :=query2.Fields[i].AsFloat *query2.Fields[k].AsFloat +s 这段代码有问题,如果query2.Fields[k]有一个值是空,此时进行AsFloat转换就会出错,因为‘’不是能转换为一个有效的FLOAT值,qkl(康)的解答是对的。 这是什么控件 [散尽所有分求解]Dephi操作word问题 高分-在线-(一个即时招聘时的问题)急!!!! 云中仙,进来!!! ^^^^可用分规则变化说明------ 帮忙测试一下,好东东哦,UP有分 BDE问题. 专家份可不可以用哦,可用分只有十分,但我还是想问这个问题 关于类的问题。 QUERY的问题 我该咋办? 'Nimda' 病毒
你应该先检查
if Length(query2.fields[k].AsString)=0 then Continue; // 或者其他语句
type TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid);
这段代码有问题,如果query2.Fields[k]有一个值是空,此时进行AsFloat
转换就会出错,因为‘’不是能转换为一个有效的FLOAT值,qkl(康)的解答是对的。