Peoplecode, SQLEXEC не получает правильные данные - PullRequest
0 голосов
/ 03 марта 2011

<------- PeopleCode ------>

Привет

У меня есть SQL-запрос, который я пытался выполнить с использованием SQLEXEC и SQL.fetch (), но проблема в том, что когда я передаю значения в параметры (: 1,: 2 ...), он не возвращает row, но когда я жестко кодирую значения в предложении where самого запроса, он получает правильное значение. Кто-нибудь может помочь?

Мой запрос похож на следующий пример запроса: Выберите * из PS_rec1, где emplid =: 1 и plan_type =: 2

не возвращает данных, пока я не укажу значения.

Я проверил значения на бэкэнде, и некоторые данные должны быть извлечены. Более того, тот же запрос извлекает данные при запуске в TOAD.

Ответы [ 3 ]

0 голосов
/ 05 марта 2011

Потребовалось еще одно обновление той же записи, чтобы получить значения, извлеченные в SQL exec. Я не уверен, в чём была проблема, но, возможно, предыдущее обновление не записывало изменения в БД даже после явной фиксации.

0 голосов
/ 06 марта 2011

Хорошо, вам нужно поставить в вопросе свое точное утверждение SQLExec.

Но действительно ли у вас есть "Select * ..." в SQLExec?Сколько столбцов в вашей таблице?Поскольку вы упоминаете предложение 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 голосов
/ 04 марта 2011

Вы пытались вывести свои привязки в файл журнала непосредственно перед тем, как использовать их в своем выражении SQL?

Если привязки не работают, но литералы есть, то, возможно, ваши привязки не содержатзначения, которые вы ожидаете от них.

Вы также можете попытаться явно установить привязки к значениям, которые вы ожидаете непосредственно перед оператором SQL.Это докажет, что способ прохождения в связках работает правильно.

...