libo1220 发表于 2018-11-15 09:11:05

oracle数据查询,表如果没数据会报异常。

local $connection="Driver={Microsoft ODBC for Oracle};Server="&$ipm_server&";Uid="&$ipm_uid&";Pwd="&$ipm_pwd&";"
   local $adoCon = ObjCreate("ADODB.Connection" )
   $adoCon.open($connection)
   local $adoRS=ObjCreate("ADODB.RecordSet")
   If Not @error Then
          Local $sql = "select vc_stock_code,vc_stock_name,c_inquiry,c_shortlisted,c_purchase,c_win from t_ipm_ipomonitor where vc_stock_code='"&$stockCode&"'"
          WriteLog($sql)
          $adoRS.Open($sql,$adoCon)
          Local $vc_stock_code=$adoRS.Fields("vc_stock_code").value
          Local $vc_stock_name=$adoRS.fields("vc_stock_name").value
          Local $c_inquiry=$adoRS.fields("c_inquiry").value
          Local $c_shortlisted=$adoRS.fields("c_shortlisted").value
          Local $c_purchase=$adoRS.fields("c_purchase").value
          Local $c_win=$adoRS.fields("c_win").value
          $adoRS.close
   Else
          MsgBox(0, "", "无法创建ADODB.RecordSet对象. 错误代码: " & Hex(@error, 8))
   EndIf
   $adoCon.close


异常:

"E:\Users\s-lib\Desktop\????\DataAccessLayer.au3" (122) : ==> The requested action with this object has failed.:
Local $vc_stock_code=$adoRS.Fields("vc_stock_code").value
Local $vc_stock_code=$adoRS.Fields("vc_stock_code")^ ERROR


原因:t_ipm_ipomonitor 没有数据记录,$adoRS.Fields("vc_stock_code").value 获取异常,大神们怎么处理这种异常!

kk_lee69 发表于 2018-11-15 09:14:25

1. 在查詢前先使用查詢 條件查詢語法讓他一定有返回值譬如 COUNT(*)   這樣 有值就會返回筆數,無值就會返回0

在 判斷 大於0 怎麼處理   等於0 怎麼處理

libo1220 发表于 2018-11-15 09:59:05

kk_lee69 发表于 2018-11-15 09:14
1. 在查詢前先使用查詢 條件查詢語法讓他一定有返回值譬如 COUNT(*)   這樣 有值就會返回筆數,無 ...

我看了你之前发的帖子,代码应该加上:If Not $adoRS.eof And Not $adoRS.bof Then

kk_lee69 发表于 2018-11-15 11:00:36

libo1220 发表于 2018-11-15 09:59
我看了你之前发的帖子,代码应该加上:If Not $adoRS.eof And Not $adoRS.bof Then

ㄟ.............你說的 好像 點醒了我這樣做 應該可以減少 很多查詢動作
页: [1]
查看完整版本: oracle数据查询,表如果没数据会报异常。