Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.
Ы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо