Я пытаюсь поддерживать программу PowerBuilder и не имею доступа к предыдущему программисту, написавшему код. Я изменил DataWindow, и теперь он генерирует исходный код, который НЕ включает владельца таблицы (dbo) в имена столбцов при выборе. Но он ДЕЙСТВИТЕЛЬНО включает dbo в предложение WHERE. Увидеть ниже.
(Старый исходный код показывает dbo.FieldAuxs везде в выборе и в том, где.)
retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"FieldAuxs~" )
COLUMN(NAME=~"FieldAuxs.id~")
COLUMN(NAME=~"FieldAuxs.clientid~")
COLUMN(NAME=~"FieldAuxs.status~")
COLUMN(NAME=~"FieldAuxs.historyear~")
WHERE( EXP1 =~"dbo.FieldAuxs.id~" OP =~"=~" EXP2 =~":al_id~" ) ) ARG(NAME = ~"al_id~" TYPE = number) " update="FieldAuxs" updatewhere=1 updatekeyinplace=no arguments=(("al_id", number)) )
Это приводит к ошибке: Префикс столбца dbo.FieldAuxs не соответствует имени таблицы или псевдониму, используемому в запросе...
Мой профиль базы данных регистрирует меня в среде разработки PowerBuilder как меня (не dbo). Я верю, что это то, чем я хочу заниматься.
Я читал о том, что для моего SQLCA.DBParm задано значение SQLQualifiers=1, но я не вижу области ввода DBParms в настройке профиля базы данных. Кажется, в некоторых версиях до 12.5 вы могли ввести значение DBParm прямо в какое-то поле. Но в 12.5 у них просто есть флажки и выпадающие списки, которые устанавливают значение для DBParm. И я не вижу выбора, который переводит в установку значения для SQLQualifiers. Согласно документации: SQLQualifiers=1 --Квалифицировать идентификаторы с именами владельцев в операторах SQL.
Я не должен правильно настроить что-то, что мой DataWindow автоматически генерирует исходный код, который полностью определяет имена столбцов ТОЛЬКО в предложении WHERE, а не в выборе.
Идеи приветствуются!