Форум: "Базы";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Внизв продолжение вчерашней проблемы с ADO Найти похожие ветки
← →
stud © (2006-05-19 13:20) [0]теперь делаю так, кидаю на форму ADODataset в св-во commandtext прописываю:
SELECT DISTINCT client.client_type, client.client_id, client.inn, client.kpp, client_person.passer, client_person.pasnum,
sub_type = case when client.client_type = "Ф" then client_person.sub_type else client_company.sub_type end,
case client.client_type when "Ю" then isnull((select client_company.shortname from client_company where client_company.client_id=client.client_id),client.name)
else client.name end as name, account.account, account.acc_id
FROM client
left join client_person on client.client_id = client_person.client_id
left join client_company on client.client_id = client_company.client_id
left outer join account on client.client_id=account.client_id
where (upper(client.name) like :cl_n)
при установке св-ва active в true получаю сообщение:
multi-step OLEDB operation generated. check each oledb status value, if available.
по описанию ошибки в инете ничего не нашел.
← →
Desdechado © (2006-05-19 13:23) [1]не хочешь case в скобки взять?
← →
stud © (2006-05-19 13:29) [2]в аналайзере этот эапрос работает и раньше он работал.
просто я его решил формировать динамически во время выполнения программы, когда не получилось, решил вернуть все взад и тут начались эти чудеса. иногда вплоть до ошибки в ntdll я уж не знаю что думать, может с дельфями плохо стало??
← →
stud © (2006-05-19 13:38) [3]с первой ошибкой вроде разрулилось, после изменения запроса не удалился один параметр. удалил его из parameters запрос отработал.
теперь к этом запросу добавляю строку
and (account.account like :acc) при попытке открыть - полчаю ошибку в ntdll.dll
меняю строку на
and (account.account =:acc) выдает ошибку AV в модуле msado15.dll
что это может значать???
← →
Desdechado © (2006-05-19 13:56) [4]по аналогии с решением предыдущей проблемы - а не забыл ли добавить новый параметр?
может, лучше paramCheck=True сделать?
← →
stud © (2006-05-19 14:01) [5]
> paramCheck=True сделать
сделан.
параметры теперь сам проверяю и значения по умолчанию присваиваю сразу.
смущает что при редактировании commandtext при добавлении/удалении параметров получаю AV. а когда была строка вида
account=:acc od :acc=0 в список параметров добавлялось два параметра: :acc, :acc=0
← →
vovnuke © (2006-05-19 14:15) [6]2 [5] stud © (19.05.06 14:01)
> account=:acc od :acc=0
замени на "account = :acc or 0 = :acc"
но параметров добавится все равно два :acc и :acc
← →
stud © (2006-05-19 14:22) [7]похоже всетаки с дельфями что-то стало((
← →
ЮЮ © (2006-05-20 12:25) [8]account=:acc od :acc=0 в список параметров добавлялось два параметра: :acc, :acc=0
Наверное, разработчики зпложились на "стильное" написание текста запроса.
а если так:
(account = :acc) or (:acc = 0) ?
← →
sniknik © (2006-05-20 13:04) [9]> (account = :acc) or (:acc = 0) ?
двух одноименных параметров в ADO не допускается.
← →
sniknik © (2006-05-20 13:33) [10]> двух одноименных параметров в ADO не допускается.
вернее, нет того эффекта который ожидают по аналогии с BDE где разовое присваивание значения по имени инициализирует все одноименные.
так то сделать можно сколько угодно одноименных, но доступ к ним будет затруднен (только по индексу/порядковому номеру, и инициализировать все одно каждый).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c