![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Error № 1038 [MSSQL]
Ega23 © (2004-10-07 10:08:00)Error № 1038 "Cannot use empty object or column names. Use a single space if necessary. "
Что за эксепшен? С чем едят? Первый раз столкнулся и не могу понять, в чём беда...
Ega23 (2004-10-07 12:38:00) [1]Места хватает? Транзакшен лог не раздулся? Похоже на то, что пытается отсортировать резалт-сет и обламывается из-за нехватки места.
Сервис-паки какие стоят?
Вот как... Сейчас посмотрю...
Nikolay M. (2004-10-07 12:32:00) [2]Места хватает? Транзакшен лог не раздулся? Похоже на то, что пытается отсортировать резалт-сет и обламывается из-за нехватки места.
Сервис-паки какие стоят?
Ega23 (2004-10-07 12:24:00) [3]А из QA запрос выполняется?
Дык в том-то и дело, что нет. Т.е. это явно не клиентская ошибка.
Если @Debug=0 поставить, то выдаётся вполне приемлимый запрос. Но - не выполняется. Почему - абсолютно неясно.
А что самое непонятное - что Error № 1038 означает.
Nikolay M. (2004-10-07 12:11:00) [4]И какой в результате текст формируется?
Случайно, пробел перед "Order By" не пропущен? Хотя вроде бы имеется...
А из QA запрос выполняется?
Ega23 (2004-10-07 12:03:00) [5]
Set @SQLMain = 'Select Distinct P.PersNam1,P.PersNam2,P.PersNam3, PF.ProfNam,
D.DepNam,P.PersTabNr,
Stat=case P.PersConstFl when 0 then "Временный" when 1 then "Постоянный" end,
P.BirthDat,P.PersPasp,P.PersAddress, P.PersNot,
P.PersWPhonNr,P.PersHPhonNr, P.PersDatOut, P.PersSexFl,
PA.FaceDat,PA.WeightDat,
HasCard=case when C.CArdId is null then "Отсутствует" else "Имеется" end,
FDat=case PA.FaceDat when 0 then "" else Convert(VarChar(10),PA.FaceDat,104) end,
WDat=case PA.WeightDat when 0 then "" else Convert(VarChar(10),PA.WeightDat,104) end,
P.PersID,P.DepCod,P.ProfCod,P.Pincode,
P.PersConstFl,O.OrgID, O.OrgNam, PA.Weight
from Persons P left Join Cards C on C.PersID=P.PersID,
Profs PF, Departs D, PersAdd PA, Orgs O
where P.ProfCod=PF.ProfCod and P.DepCod=D.DepCod and P.PersID>1
and P.PersID=PA.PersID and D.OrgID=O.OrgID
and P.persmsk=1 and P.PersID in (Select PersID from #X_PersID)'
set @sOrderBy = replace( @sOrderBy, '%Desc%', @DescParam )
set @SQLMain=@SQLMain+@sOrderBy
SET NOCOUNT Off
if @debug<>-1 Print(@SQLMain) else exec(@SqlMain)
drop Table #X_PersID
Это исходный запрос внутри ХП. Входной параметр @sOrderBy теперь стал " Order By D.DepOrd " (поле типа int). Соответственно, его надо включить в основную выборку. при включении - тот самый эксепшн.
Nikolay M. (2004-10-07 11:47:00) [6]А как новое поле называется? И какого оно типа?
QUOTED_IDENTIFIER чему равно?
Ega23 (2004-10-07 11:41:00) [7]1. пока не пробовал, возьму на заметку.
2. В смысле "В транзакции"? На клиенте запуск одной ХП; другое дело, что их этой ХП другие вызываются.
3. Угу.
Nikolay M. (2004-10-07 11:18:00) [8]1) А если ради эксперимента вместо временной простую таблицу задействовать?
2) Все это, случайно, не в транзакции происходит?
3) А если вернуть в статус кво - все нормально становится?
Ega23 (2004-10-07 11:13:00) [9]Короче, дело в следующем:
Есть некая ХП, которая на основании входных данных (а эти данные, в свою очередь - параметры фильтрации выборки с клиента) выбирает ID персонала во временную таблицу. После этого в ХП генерится "мощный" запрос по 6-ти таблицам с левым джоином впридачу. В конце этого запроса стоит ' and PersID in (Select PersID from #tmpPers)'.
Всё было хорошо, пока не добавился ещё один параметр - новое поле сортировки. В начальном запросе этого поля не было.
Добавляю - возникает вот такой эксепшн. Куда "рыть" - непонятно.
Ega23 (2004-10-07 10:50:00) [10]Таблицу создаешь? ЕМ-ом?
Нет. Чуть попозже...
Nikolay M. (2004-10-07 10:26:00) [11]Таблицу создаешь? ЕМ-ом?
Nikolay M. (2004-10-07 10:23:00) [12]Сервер удаленный? Есть подозрение, что проблемы с настройками сети. Выдерни/воткни сетевой шнур и ipconfig /renew.
Ы?