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

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

Ошибка выполнения запроса [D7, MSSQL]


Виталий Панасенко ©   (2007-12-24 11:54:00) 

Пытаюсь выполнить запрос(при этом с MS SQL не работал)
select top 10 s.*, c.*, s2.nk,
cast(replace(s2.nls, substring(s2.nls,1, 4), substring(s2.nls,1, 4)+s2.kss) as varchar(14)) as nls
,
c2.idcode,
c2.fullname,
(select sum(abs(s2207.rst)) from
ff_RestDiaNLS('2208', '2999', 1, 0, '30.10.2007', 2007) as s2207
where s2207.idc=s.idc and s2207.rst<>0 and
(
substring(nls,1 , 4) like '2__8'
)
group by s2207.idc
)as col20,
(select sum(abs(s2207.rst)) from
ff_RestDiaNLS('2208', '2999', 1, 0, '30.10.2007', 2007) as s2207
join saldo s3
on (s3.nls=s2207.nls) and (s3.i_va=s2207.i_va) and (s3.idcontract=s2207.idc)
where s2207.idc=s.idc and s2207.rst<0 and
substring(s2207.nls,1 , 4) like '2__9'and
s3.sub_nls in
('04',
'05',
'06',
'07',
'12',
'14',
'16',
'18',
'20',
'22',
'24',
'26',
'28',
'30',
'32',
'34',
'36',
'38',
'40',
'42',
'44',
'48',
'50',
'52',
'54',
'56',
'58',
'60',
'62',
'64',
'66'
)
group by s2207.idc
)as col21,

(select sum(abs(s2207.rst)) from
ff_RestDiaNLS('2208', '2999', 1, 0, '30.10.2007', 2007) as s2207
join saldo s3
on (s3.nls=s2207.nls) and (s3.i_va=s2207.i_va) and (s3.idcontract=s2207.idc)
where s2207.idc=s.idc and s2207.rst<>0 and
(
substring(s2207.nls,1 , 4) like '2__9' and
s3.sub_nls in
(
'08',
'09',
'10',
'11',
'13',
'15',
'17',
'19',
'21',
'23',
'25',
'27',
'29',
'31',
'33',
'35',
'37',
'39',
'41',
'43',
'45',
'49',
'51',
'53',
'55',
'57',
'59',
'61',
'63',
'65',
'67'
)
)
group by s2207.idc

)as col22
,
(select sum(abs(s2207.rst)) from
ff_RestDiaNLS('2208', '2999', 1, 0, '30.10.2007', 2007) as s2207
join saldo s3
on (s3.nls=s2207.nls) and (s3.i_va=s2207.i_va) and (s3.idcontract=s2207.idc)
where s2207.idc=s.idc and s2207.rst<>0 and
(
substring(s2207.nls,1 , 4)='2480'
)

group by s2207.idc

)as col23

 from
ff_RestDiaNLS('2202', '2291', 1, 0, '30.10.2007', 2007) s
join contract c
on (c.idcontract=s.idc)
join saldo s2
on (c.idcontract=s2.idcontract)
join clients c2
on (c2.idclient=c.idclient)
where s2.bals in
(2202,2203,2207, 2213, 2217, 2233, 2237, 2290, 2291)
and s.rst<>0 and c.c_risk is not null and
c.vidcontract=4
and s.nls=s2.nls and s.i_va=s2.i_va
order by c.c_risk, s2.bals, s2.nls

Получаю вот такое сообщение:
Server: Msg 296, Level 16, State 3, Line 2
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

Я понял, что при попытке привести символьный тип к "маленькому":-) дате-времени значение выходит за пределы 01/01/1900-06/06/2079. Но можно ли из Server: Msg 296, Level 16, State 3, Line 2более точно выяснить, где ? Выражение 3, строка 2?.. Только откуда считать..:-(
MS SQL - 2000... Тяжело проверять - канал 19200(просьба не смеятся :-) )...


sniknik   (2007-12-24 15:11:00) [1]

> по умолчанию MSSQL принимает даты в виде: сначала пишется месяц, потом день
> то есть '10.30.2007'
нет, я бы на это не рассчитывал. уж если нет возможности использовать параметр, строкой дату для MSSQL надо писать так - '20071030'


Palladin   (2007-12-24 15:01:00) [2]

по умолчанию MSSQL принимает даты в виде: сначала пишется месяц, потом день

то есть '10.30.2007'


sniknik   (2007-12-24 14:43:00) [3]

> Sorry, this file is no longer available
а... ну значит не судьба. когда давал ссылка была свежая, валидная.


Виталий Панасенко(дом)   (2007-12-24 13:40:00) [4]

И, кстати, по той ссылке( http://www.filefactory.com/file/a2c2f4/) нету уже ничего
"Sorry, this file is no longer available. It may have been deleted by the uploader, or has expired."


Виталий Панасенко(дом)   (2007-12-24 13:36:00) [5]


> sniknik ©   (24.12.07 13:04) [3]

Я его(рабочее место) не организовываю...К сожалению...БД не дают к сожалению то же...Частичный доступ...Но в то же время требуют...Попробую с параметрами


sniknik   (2007-12-24 13:04:00) [6]

> Тяжело проверять - канал 19200(просьба не смеятся :-) )...
один раз можно посочувствовать... но не перманентному мазохизму (больше месяца уже прошло? давно бы поставил локально для тестов сервер и копию базы поднял. заодно и безопаснее "на кошках" тренироваться чем на рабочей базе).

> Вообще, это ругается Query Analizer, забыл сказать.. я просто проверяю, то мне выберет, что надо или нет...
а если QA выберет то что надо, а перенесенное в прогу будет отличаться результатом? будеш счастлив?
однозначно
> Параметры используй.
и без "отмазок". не хочеш, ну, сам виноват. кстати я давал тебе прогу где можно проверить с параметрами... т.е. есть все (и возможность использовать/проверять с параметрами и не зависеть от канала)... но предпочитаем жаловаться на тяжкую жизнь вместо организации нормально рабочего места?... смешно.


Виталий Панасенко   (2007-12-24 12:20:00) [7]


> Desdechado ©   (24.12.07 11:59) [1]
> Похоже, здесь:
> '30.10.2007'
> Параметры используй.

Вообще, это ругается Query Analizer, забыл сказать.. я просто проверяю, то мне выберет, что надо или нет...


Desdechado   (2007-12-24 11:59:00) [8]

Похоже, здесь:
'30.10.2007'
Параметры используй.


Наверх

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