С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 56
1

Ошибка: Incorrect syntax near '('

13.02.2016, 13:43. Показов 2177. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер.

Есть Форма, на форме кнопка Search. При нажатии на кнопку вызывается хранимая процедура Stored_Proc и загружает запрашиваемые данные на форму в DBGridEh.
Stored_Proc. При запуске процедуры в SQL ошибок нет.
При запуске и нажатии кнопки выходит сообщение.
Может кто сталкивался с подобным? Не знаю в какую сторону копать, где ошибка в коде Delphi или SQL. Подскажите где начинать искать.
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2016, 13:43
Ответы с готовыми решениями:

ошибка - "Incorrect syntax near '@P2'"
Добрый день! Столкнулся с небольшой проблемкой! Необходимо выполнить хранимую процедуру(ms sql...

Incorrect syntax near
Подскажите пожалуйста, мне нужно взять дату с одного DateTimePicker'a, время с другого и поместить...

Incorrect syntax near ','
Доброго времени суток! Может кто подскажет причину неработающей кнопочки у меня на форме вот...

ADODB, Incorrect syntax near 'GO'
Доброго времени суток! В TADOQuery через ExecSQL выполняю такой запрос: USE Uchet IF EXISTS...

6
5870 / 4598 / 1448
Регистрация: 14.04.2014
Сообщений: 20,404
Записей в блоге: 20
13.02.2016, 14:54 2
воу, палехче

вызывается хранимая процедура Stored_Proc и загружает запрашиваемые данные на форму в DBGridEh.Stored_Proc
во первых, ХП никуда данные обычно не загружает, да и слово вызывается ни о чем не говорит
как вызывается? посредством чего?
во-вторых, в доках я не вижу никакой Stored_proc у dbgrideh
0
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
13.02.2016, 14:59 3
Экранирование символов? А содержимое ваших запросов нам угадывать?
0
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 56
13.02.2016, 15:41  [ТС] 4
Сама процедура
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
CREATE PROCEDURE [Proc].[prog];
                @YearTA nvarchar(2) = N'0'--int=0   
,               @ParPlant nvarchar(2) = N''
,               @ParUnit nvarchar(40)=N''
,               @ParTypeEq nvarchar(40)=N''
        
                                    
AS
--SET DATEFORMAT DMY
 
DECLARE @ALLequip_wherestr nvarchar(4000)
DECLARE @output nvarchar(4000)
 
SET @ALLequip_wherestr = N''
 
IF (SELECT LEN(@ParPlant)) > 0
BEGIN 
    SET @ALLequip_wherestr = @ALLequip_wherestr + N' AND '+@ParPlant+''
END
 
IF (SELECT LEN(@ParUnit)) > 0
BEGIN 
    SET @ALLequip_wherestr = @ALLequip_wherestr + N' AND '+@ParUnit+''
END
 
IF (SELECT LEN(@ParTypeEq)) > 0
BEGIN 
    SET @ALLequip_wherestr = @ALLequip_wherestr + N' AND '+@ParTypeEq+''
END
 
SET @output =N'
SELECT
    '''' as Ch    
,   e.EquipID
,   p.PlantName as Plant 
,   u.UnitName  as Unit
,   e.UserEquipID as Equipment
,   f.FixedEquipType as Type
,   CASE WHEN (e.ERP_Asset_Field4 IS NULL) THEN u.Type ELSE e.ERP_Asset_Field4 END AS Inspts
,   case when (wl.EquipID is null) then ''0'' else ''1'' end as incld
,   wl.YearTA
FROM Equipment AS e INNER JOIN Unit AS u ON e.UnitID = u.UnitID INNER JOIN
     Plant AS p ON e.PlantID = p.PlantID INNER JOIN
     FixedEquipmentAsset AS f ON e.EquipID = f.EquipID left join
     (SELECT  EquipID, YearTA, Opportunity, TA
        FROM  TCO_Data.WL
        GROUP BY EquipID, YearTA
        HAVING YearTA ='+@YearTA+') as wl on wl.EquipID=e.EquipID
        WHERE p.plantid<>48 and f.ActiveFlag = ''y''
        group by e.EquipID, p.PlantName, u.UnitName, e.UserEquipID,e.ERP_Asset_Field4, u.Type,  
         f.FixedEquipType, wl.EquipID'
 
 
+@ALLequip_wherestr 
    
    EXEC sp_executesql @output
 
GO
Добавлено через 1 минуту
параметры
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
with Proc do
    begin
      close;
      Prepared;
      Parameters.ParamByName('@YearTA').Value := Edit_Year.Text;
      Parameters.ParamByName('@ParPlant').Value := parPlant;
      Parameters.ParamByName('@ParUnit').Value := parUnit;
      Parameters.ParamByName('@ParTypeEq').Value := parTypeFEq;
      open;
    end;
 
 DBGridEh_main_Some.DataSource:=DataSource_Find;
 
  DBGrid_Export.datasource.dataset.First;
  for i:=1 to DBGrid_Export.datasource.dataset.recordcount do
  begin
    if DBGrid_Export.Fields[7].AsString='1'
    then
    begin
      value:=DBGrid_Export.Fields[1].AsInteger;
      ListSelect.Add(Pointer(Value));
      rows:=SG_EquipID.RowCount;
      SG_EquipID.RowCount:=rows+1;
      SG_EquipID.Cells[0,rows]:=DBGrid_Export.Fields[1].AsString;
    end;
    if i<>DBGrid_Export.datasource.dataset.recordcount then DBGrid_Export.datasource.dataset.next;
 
  end;
  DBGridEh_main_Some.Refresh;
Добавлено через 43 секунды
Помогите плизз в какую сторону копать.... не понимаю где ошибка
0
5582 / 4432 / 1080
Регистрация: 29.08.2013
Сообщений: 27,717
Записей в блоге: 3
13.02.2016, 15:55 5
зачем вы везде добавляете N
зачем вам в процедуре делать EXEC sp_executesql @output
и почему вы везде кавычки экранируете, а тут
Цитата Сообщение от Гуфа Посмотреть сообщение
HAVING YearTA ='+@YearTA+') as wl on wl.EquipID=e.EquipID
нет

вы вообще свою хранимку оттестировали?
0
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 56
24.02.2016, 08:05  [ТС] 6
Проблема была с синтаксисе '+@YearTA+'. и вообще данное условие было лишним.убрала - все заработало как надо
0
5582 / 4432 / 1080
Регистрация: 29.08.2013
Сообщений: 27,717
Записей в блоге: 3
24.02.2016, 09:05 7
вы бы лучше писать запросы научились - у вас там много лишнего
0
24.02.2016, 09:05
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2016, 09:05
Помогаю со студенческими работами здесь

Incorrect syntax near the keyword 'Values'
Здравствуйте, не пойму почему возникает ошибка incorrect syntax near the keyword 'Values' при...

Ошибка при открытии проекта: Create form is missing or incorrect
Всем привет! Не открывается проект в Delphi 7. Ошибка: на фото. Признаюсь, пытался...

Ошибка: syntax error in from clause в запросе с JOIN
Добрый день! Имеется вот такая БД. А вот это главная форма программы. Выбрана таблица...

Ошибка Incorrect syntax near '>'
Добрый день. Второй день маюсь с ошибкой в такой строке: case ReportDate &gt; @maxdate then @valcur...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru