ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Project Test.exe raised exception class EVariantTypeCastError with message 'Could not convert v

2022-04-29 16:33:38  阅读:143  来源: 互联网

标签:raised exe AsInteger BoxQty rstSourceData rstUpSalesDetail AsString type FieldBy


环境:ABFramework3.9.5

错误描述:循环插入报如题所示错误

代码如下:

rstUpSalesDetail.FieldByName('CustGoodsCode').AsString:=rstSourceData.FieldByName('CustGoodsCode').AsString;
rstUpSalesDetail.FieldByName('BrandID').AsString:=rstSourceData.FieldByName('BrandID').AsString;
rstUpSalesDetail.FieldByName('DistrictID').AsString:=rstSourceData.FieldByName('DistrictID').AsString;
rstUpSalesDetail.FieldByName('Field1').AsString:=rstSourceData.FieldByName('Field1').AsString;
rstUpSalesDetail.FieldByName('Field2').AsString:=rstSourceData.FieldByName('Field2').AsString;
rstUpSalesDetail.FieldByName('Field3').AsString:=rstSourceData.FieldByName('Field3').AsString;
rstUpSalesDetail.FieldByName('Field4').AsString:=rstSourceData.FieldByName('Field4').AsString;
rstUpSalesDetail.FieldByName('Field5').AsString:=rstSourceData.FieldByName('Field5').AsString;
vFieldTypeNames:=FieldTypeNames[rstSourceData.FieldByName('BoxQty').DataType];
vFieldTypeNames:=FieldTypeNames[rstUpSalesDetail.FieldByName('BoxQty').DataType];
rstUpSalesDetail.FieldByName('BoxQty').AsInteger:=rstSourceData.FieldByName('BoxQty').AsInteger;
rstUpSalesDetail.FieldByName('UnitPrice').AsCurrency:=rstSourceData.FieldByName('UnitPrice').AsCurrency;
rstUpSalesDetail.FieldByName('DiscountRate').AsCurrency:=rstSourceData.FieldByName('DiscountRate').AsCurrency;
rstUpSalesDetail.FieldByName('PurchaseOrderID').AsString:=OrderABQuery.FieldByName('PurchaseOrderID').AsString;
rstUpSalesDetail.FieldByName('SalesOrderDetailID').AsString:=rstSourceData.FieldByName('OrderDetailID').AsString;
rstUpSalesDetail.FieldByName('SalesOrderID').AsString:=OrderDetailABQuery.FieldByName('SalesOrderID').AsString;
for i:=1 to MaxSizeCol do
rstUpSalesDetail.FieldByName('x_'+IntToStr(i)).AsInteger:=rstSourceData.FieldByName('x_'+IntToStr(i)).AsInteger;
rstUpSalesDetail.FieldByName('SizeIndex').AsInteger:= MaxSizeCol;

执行到BoxQty赋值时报错

经过排查是因为设置了字段CustGoodsCode的取值SQL是:箱*数量和,所以执行到箱时就会报 type (String) into type (Double)的错误

标签:raised,exe,AsInteger,BoxQty,rstSourceData,rstUpSalesDetail,AsString,type,FieldBy
来源: https://www.cnblogs.com/edrp/p/16207081.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有