当前位置: 代码迷 >> PB >> sqlerrtext,能否只取定义的异常信息
  详细解决方案

sqlerrtext,能否只取定义的异常信息

热度:215   发布时间:2016-04-29 06:32:41.0
sqlerrtext,能否只取定义的错误信息
sqlerrtext 完整的错误信息:
Index #0 Source: .Net SqlClient Data Provider Message: 业务员未设定所属库存分类! Number: 50000 State: 1
No changes made to database.
INSERT INTO sales_detail ( sales_code, myrow_id, batch_no, quantity, discount, amount, tax_value, com_id, mod_id, refunded, ws_price, retail_price, costs, storein_code, com_type, storein_price, myprice, storein_rowid, storein_discount, price_taxed, costs_taxed, wh_code, storage_id, inventory_id, indept_code, inemp_code, in_date, insup_code, avgPrice, avgPricetaxed, originalPrice, curWsPrice, curRtPrice ) VALUES ( 'GSSP131023-001A', 1, '', 1.0000, 100.00, 5.00, 0.73, 1, 1, 0.0000, 0.0000, 0.0000, 27.35, 'GSJP131019-001A', 1, 27.350427, 5.0000, 2, 0.00, 32.0000, 32.00, 1, 3, 1, 1, 1, '2013-10-19 23:44:07.370', 1, 0.000000, 0.0000, 5.0000, 5.0000, 8.0000 )
 
能否只获取“业务员未设定所属库存分类!”这个自定义的错误信息呢
DW sqlerrtext pb

------解决方案--------------------
引用:
sqlerrtext 完整的错误信息:
Index #0 Source: .Net SqlClient Data Provider Message: 业务员未设定所属库存分类! Number: 50000 State: 1
No changes made to database.
INSERT INTO sales_detail ( sales_code, myrow_id, batch_no, quantity, discount, amount, tax_value, com_id, mod_id, refunded, ws_price, retail_price, costs, storein_code, com_type, storein_price, myprice, storein_rowid, storein_discount, price_taxed, costs_taxed, wh_code, storage_id, inventory_id, indept_code, inemp_code, in_date, insup_code, avgPrice, avgPricetaxed, originalPrice, curWsPrice, curRtPrice ) VALUES ( 'GSSP131023-001A', 1, '', 1.0000, 100.00, 5.00, 0.73, 1, 1, 0.0000, 0.0000, 0.0000, 27.35, 'GSJP131019-001A', 1, 27.350427, 5.0000, 2, 0.00, 32.0000, 32.00, 1, 3, 1, 1, 1, '2013-10-19 23:44:07.370', 1, 0.000000, 0.0000, 5.0000, 5.0000, 8.0000 )
 
能否只获取“业务员未设定所属库存分类!”这个自定义的错误信息呢

1、写代码对errtext 进行处理,取自己想要的部分。
2、在保存数据前先对重要的数据进行判断,如果输入有误或者没填写,弹出自定义错误提示。

------解决方案--------------------
if pos(sqlerrtext,"业务员未设定所属库存分类!") <> 0 then a = "业务员未设定所属库存分类!"


------解决方案--------------------
只能用代码进行截取,其它没有好办法
------解决方案--------------------
引用:
写代码,自己截取这部分肯定可以
想知道有没有属性,或者函数能直接提取这一部分?
这一部分,是我在触发器里写的,通过raiserror抛出来的错误提示

现在sqlerrtext里的内容一大堆,直接给客户看,太乱啦


既然你有思路了就好办,没有现存的方法,你可以自己写,把它封装到Transaction 里。调用起也很方便的。
------解决方案--------------------
1、写代码对errtext 进行处理,取自己想要的部分。
2、在保存数据前先对重要的数据进行判断,如果输入有误或者没填写,弹出自定义错误提示。