2011-03-03 41 views
-1

< ------- ------的PeopleCode>的PeopleCode,SQLEXEC不正確的檢索數據

嗨,

我有我試圖執行一個SQL查詢同時使用SQLEXEC和SQL.fetch()但問題是,當我將值傳遞給參數(:1,:2 ...)時,它不返回行,但是當我在查詢本身的where子句中對值進行硬編碼時,檢索正確的值。 任何人都可以幫忙嗎?

我的查詢看起來類似於下面的示例查詢: 從PS_rec1選擇*其中EMPLID = 1個plan_type = 2

直到我硬編碼值,它沒有返回數據。

我已經檢查了後端的值,並且有一些數據被提取。而且,相同的查詢在TOAD中運行時檢索數據。

+0

我在應用程序引擎中編寫此SQLEXEC – 2011-03-03 16:30:48

+0

期待幫助,但未提供有關問題代碼的足夠詳細信息,請考慮在您的問題中提供確切的說明。既然你已經提到你已經列出了你的綁定變量的內容,請在問題中包含它。 – WayneH 2011-03-06 04:46:21

回答

0

它需要對同一記錄進行另一次更新以獲取SQL exec中獲取的值。 M不知道是什麼問題,但我想它可能是以前的更新沒有寫入更改到數據庫,即使在顯式提交後。

0

您是否曾嘗試在您的SQL語句中使用它們之前將日誌文件輸出到日誌文件?

如果綁定不起作用,但文字是,那麼也許您的綁定不包含您期望他們的值。

您還可以嘗試顯式地將綁定設置爲您在SQL語句之前所期望的值。這將證明你在綁定中傳遞的方式工作正常。

+0

感謝Peoplesoft提示器,我是通過檢查MessageBox中的綁定值來實現的,它們包含正確的值 – 2011-03-04 09:25:57

0

好的,你需要把你的確切的SQLExec語句在問題中。

但是,你真的在​​SQLExec中有「Select * ...」嗎?你的桌子有多少列?既然你提到的where子句,是你的聲明

SQLExec("select * from PS_rec where emplid=:1 and plan_type=:2", &var1, &var2, &vartocontainthewholerow); 

將在一個SQL工具(蟾蜍)工作,但可能是在AE或任何類型的PeopleCode程序不起作用。

現在,如果你的表有三列,你不應該有這樣的事情:

SQLExec("select emplid, plan_type, column3 from PS_rec where emplid = :1 and plan_type=:2", &emplidIn, &plan_typeIn, &emplidOut, &plan_typeOut, &column3Out); 

注意與該EMPLID和plan_type表三列是他們兩個,你需要列出所有你想要的列,而不是星號'*'。儘管選擇emplid和plan_type很愚蠢。

+0

對不起,但我無法再提供有關正在使用的SQL的信息。無論如何,這個問題已經解決。這是由於在執行SQL之前不一致的更新造成的。 – 2011-10-17 08:10:36