Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не запускается SQL скрипт из Delphi, Неправильно определен обьект Parameter.. 
V
    Опции темы
Spirit_FTZI2
  Дата 12.4.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Доброго времени суток!

Есть моя программулина, которая выводит инфу с БД в DBGrid. SQL server 2005 express + ADO компоненты + Delphi.

Есть запрос:
Код

SET DATEFORMAT DMY

DECLARE @StartDate     [DATETIME]
DECLARE @EndDate       [DATETIME]
DECLARE @DateTmp       [DATETIME]
DECLARE @EndTime       [NVARCHAR](10)

DECLARE @columns       [NVARCHAR](4000)
DECLARE @sql_str       [NVARCHAR](4000)
DECLARE @sql_str2      [VARCHAR](8000)

SET @StartDate = '01/03/2008' -- start period date
SET @EndDate   = '25/03/2008' -- end period date
SET @EndTime   = '18:00:00'   -- end period time

SET @columns       = ''
SET @DateTmp       = @StartDate


SELECT sq.[Отдел],
       sq.[ФИО],
       sq.[Кол-во  раб. часов в месяце],
       sq.[Кол-во рабочих дней в месяце],
       sq.[Фактич. кол-во дней на работе],
       sq.[Фактч. кол-во раб. часов],
       sq.[Из них кол-во часов после 18:00],
       sq.[Отпуск кол-во дней],
       sq.[Важные причины кол-во],
       sq.[Примечание],
       st.*,
       tl.*
  FROM 
(SELECT u.UID,
       g.[GroupName] AS 'Отдел',
       u.[Name] AS 'ФИО',
       '' AS 'Кол-во  раб. часов в месяце',
       '' AS 'Кол-во рабочих дней в месяце',
       (SELECT TOP(1) COUNT(CONVERT([NVARCHAR](15),l2.Date,103))
          FROM [dbo].[RALog] l2
         WHERE l2.Date > @StartDate AND l2.Date < @EndDate AND l2.UID = u.UID
         GROUP BY CONVERT([NVARCHAR](15),l2.Date,103)) AS 'Фактич. кол-во дней на работе',
       (SELECT TOP(1) CONVERT([NVARCHAR](5),SUM(DATEPART(hh,CONVERT([DATETIME],sq.[Time],108))) + CONVERT([INT],SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108)))/60)) + ':' + CONVERT([NVARCHAR](5),SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108))) - CONVERT([INT],SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108))) / 60)*60) + ':' + CONVERT([NVARCHAR](5),SUM(DATEPART(ss,CONVERT([DATETIME],sq.[Time],108))))
          FROM (SELECT CONVERT([NVARCHAR](15),l3.Date,103) AS 'Date',
                       CONVERT([NVARCHAR](10),(MAX(CONVERT([DATETIME],l3.[Time])) - MIN(CONVERT([DATETIME],l3.[Time]))),108) AS [Time]
                  FROM [dbo].[RALog] l3
                 WHERE l3.Date > @StartDate AND l3.Date < @EndDate AND l3.UID = u.UID
                 GROUP BY CONVERT([NVARCHAR](15),l3.Date,103)) AS sq) AS 'Фактч. кол-во раб. часов',
       (SELECT TOP(1) COALESCE(CONVERT([NVARCHAR](5),SUM(DATEPART(hh,CONVERT([DATETIME],sq.[Time],108))) + CONVERT([INT],SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108)))/60)) + ':' + CONVERT([NVARCHAR](5),SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108))) - CONVERT([INT],SUM(DATEPART(mi,CONVERT([DATETIME],sq.[Time],108))) / 60)*60) + ':' + CONVERT([NVARCHAR](5),SUM(DATEPART(ss,CONVERT([DATETIME],sq.[Time],108)))),'0:0:0')
          FROM (SELECT CONVERT([NVARCHAR](15),l3.Date,103) AS 'Date',
                       CONVERT([NVARCHAR](10),(MAX(CONVERT([DATETIME],l3.[Time])) - CONVERT([DATETIME],@EndTime)),108) AS [Time]
                  FROM [dbo].[RALog] l3
                 WHERE l3.Date > @StartDate AND l3.Date < @EndDate AND l3.UID = u.UID AND DATEDIFF(mi,CONVERT([DATETIME],l3.[Time]),CONVERT([DATETIME],@EndTime)) < 0 
                 GROUP BY CONVERT([NVARCHAR](15),l3.Date,103), l3.[Time]
                HAVING l3.[Time] = (SELECT CONVERT([NVARCHAR](10),(MAX(CONVERT([DATETIME],l5.[Time]))),108)
                                      FROM [dbo].[RALog] l5
                                     WHERE l5.UID = u.UID AND CONVERT([NVARCHAR](15),l5.Date,103) = CONVERT([NVARCHAR](15),l3.Date,103))) AS sq) AS 'Из них кол-во часов после 18:00',
       '' AS 'Отпуск кол-во дней',
       '' AS 'Важные причины кол-во',
       '' AS 'Примечание'
  FROM [dbo].[RALog] l
 INNER JOIN [dbo].[User] u
    ON (u.UID = l.UID)
 INNER JOIN [dbo].[Group] g
    ON (g.GID = u.GID)
WHERE l.Date > @StartDate
      AND l.Date < @EndDate
GROUP BY u.[Name], u.UID, g.[GroupName]) AS sq
LEFT JOIN [dbo].[tmp_StartTime] st
  ON (sq.UID = st.UID)
LEFT JOIN [dbo].[tmp_TimeLength] tl
  ON (sq.UID = tl.UID)
ORDER BY [Отдел], [ФИО]


В SQL server'e запрос ошибок не возвращает, нормально получаю данные, но из Delphi не могу получить данные. Ошибка: Неправильно определен обьект Parameter. Предоставлены несовместимые или неполные сведения.

Как получить выборку именно из Delphi??? Оччень нуна... 

БД прилагается.

Это сообщение отредактировал(а) Spirit_FTZI2 - 12.4.2008, 20:46

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  FASSQL2.rar 612,16 Kb
PM MAIL   Вверх
Spirit_FTZI2
Дата 13.4.2008, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



I'm sorry.

Проблема решена,  в названии столбца не должно быть 18:00, нужно так: sq.[Из них кол-во часов после 18],
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.