我有下面的ASP代码,用于从.csv文件导入。我在线上得到了错误
rs_add_pg_asset_attr("level_3_integer_attribute_description") = rs_get_costs("sp_import_pg_attribute_value")
我猜测代码试图将两个不同记录集中的2列设置为相同的东西?如我错了请纠正我。 level_3_integer_attribute_description
中的数据为type decimal(13,3), NULL
,sp_import_pg_attribute_value
中的数据为不同值type varchar(255), NULL
的整个范围。
我无法弄清楚为什么会失败。
str_get_pg_attribute_id_sql = "SELECT * FROM tbl_level_3_cbs_attribute WHERE level_3_cbs_attribute_description = '" & rs_get_costs("sp_import_pg_attribute") & "'"
str_get_pg_attribute_id_sql = str_get_pg_attribute_id_sql & " AND level_3_cbs_id = " & int_level_3_id
rs_get_pg_attribute_id.Open str_get_pg_attribute_id_sql, dbConnection, 3
if rs_get_pg_attribute_id.RecordCount <> 0 then
''//Does the attribute already exist?
str_get_pg_attribute_sql = "SELECT * FROM tbl_asset_level_3_attribute_link WHERE "
str_get_pg_attribute_sql = str_get_pg_attribute_sql & "level_3_cbs_attribute_id = " & rs_get_pg_attribute_id("level_3_cbs_attribute_id") & " AND asset_level_3_id = " & int_pg_asset_id
rs_get_pg_attribute.Open str_get_pg_attribute_sql, dbConnection, 3
if rs_get_pg_attribute.RecordCount = 0 then
''//No, add the attribute record
sqlString="select top 1 * from tbl_asset_level_3_attribute_link"
rs_add_pg_asset_attr.Open sqlString, dbConnection, adOpenKeyset, adLockOptimistic
rs_add_pg_asset_attr.AddNew
rs_add_pg_asset_attr("level_3_cbs_attribute_id") = rs_get_pg_attribute_id("level_3_cbs_attribute_id")
rs_add_pg_asset_attr("asset_level_3_id") = int_pg_asset_id
if rs_get_pg_attribute_id("level_3_cbs_attribute_type") = "I" then
rs_add_pg_asset_attr("level_3_integer_attribute_description") = rs_get_costs("sp_import_pg_attribute_value")
else
rs_add_pg_asset_attr("level_3_string_attribute_description") = rs_get_costs("sp_import_pg_attribute_value")
end if
答案 0 :(得分:1)
您确定level_3_integer_attribute_description
是现有字段名称,在任何地方都没有拼写错误吗?
如果是这样,您要将数据放入此十进制值中,是否为浮点值的正确字符串表示形式?小数点和逗号没有问题?
答案 1 :(得分:1)
由于错误是类型不匹配错误,您可能遇到类型不匹配错误:)
试试这个:
rs_add_pg_asset_attr("level_3_integer_attribute_description") = _
tryCDbl( rs_get_costs("sp_import_pg_attribute_value"))
然后:
function tryCDbl( something )
dim retval
retval = 0 ''// fallback
on error resume next
if isNumeric( something ) then
retval = cdbl( something)
end if
tryCDbl = retval
end function
答案 2 :(得分:0)
我们找到了这个问题的答案。问题是导入试图将空格分配到十进制列。谢谢你的帮助。我现在还被其他东西困住了!