Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2013, 19:29   #1
Ksuta-4837
Новичок
Джуниор
 
Регистрация: 29.12.2013
Сообщений: 4
Восклицание Исправить ошибку в параметрическом запросе

Помогите хоть с этим.Очень прошу(((((( Запрос не верен, может синтаксис , может нет связки с табл, но делфи ругается. Не знаю уже что..
-Список вышедшего из строя оборудования в заданном цехе предприятия:
Код:
SELECT H.NAME_HARAKTER, C.KOD_CEX
FROM HARAKTERISTIKA H, OSMOTR OSM
WHERE C.KOD_CEX=2 AND
OSM.SOSTOJANIE LIKE 'В%'
Созданные таблицы:Цех, Осмотр, сотрудник,оборудование, характеристика оборудования.

/* Создание таблицы «Цех» */
CREATE TABLE "CEX" 
(
  "KOD_CEX"	"DOM_KOD",
  "NAZVANIE_CEX"	"DOM_STR",
CONSTRAINT "CEX_PK" PRIMARY KEY ("KOD_CEX")
);
SET TERM ^ ;

/* Создание таблицы «Характеристика» */
CREATE TABLE "HARAKTERISTIKA" 
(
  "KOD_HARAKTER"	"DOM_KOD",
  "NAME_HARAKTER"	"DOM_STR",
CONSTRAINT "HARAKTERISTIKA_PK" PRIMARY KEY ("KOD_HARAKTER")
);

/* Создание таблицы «Оборудование» */
CREATE TABLE "OBORUDOVANIE" 
(
  "KOD_OBOR"	"DOM_KOD",
  "NAIM_OBOR"	"DOM_STR",
  "KOD_CEX"	"DOM_KOD",
  "KOD_HARAKTER"	"DOM_KOD",
CONSTRAINT "OBORUD_PK" PRIMARY KEY ("KOD_OBOR")
);
ALTER TABLE "OBORUDOVANIE" ADD CONSTRAINT "FK_CEX" FOREIGN KEY ("KOD_CEX") REFERENCES CEX ("KOD_CEX");
ALTER TABLE "OBORUDOVANIE" ADD CONSTRAINT "FK_HARAKTERISTIKA" FOREIGN KEY ("KOD_HARAKTER") REFERENCES HARAKTERISTIKA ("KOD_HARAKTER");

/* Создание таблицы «Осмотр» */
CREATE TABLE "OSMOTR" 
(
  "KOD_OSM"	"DOM_KOD",
  "KOD_OBOR"	"DOM_KOD",
  "KOD_SOTR"	"DOM_KOD",
  "DATA"	"DOM_DATA",
  "SOSTOJANIE"	"DOM_STR",
CONSTRAINT "OSMOTR_PK" PRIMARY KEY ("KOD_OSM")
);
ALTER TABLE "OSMOTR" ADD CONSTRAINT "FK_OBORUDOVANIE" FOREIGN KEY ("KOD_OBOR") REFERENCES OBORUDOVANIE ("KOD_OBOR");
ALTER TABLE "OSMOTR" ADD CONSTRAINT "FK_SOTRUDNIK" FOREIGN KEY ("KOD_SOTR") REFERENCES SOTRUDNIK ("KOD_SOTR");
SET TERM ^ ;

/* Создание таблицы «Сотрудник» */
CREATE TABLE "SOTRUDNIK" 
(
  "KOD_SOTR"	"DOM_KOD",
  "FIO"	"DOM_STR",
  "DOLZHNOST"	"DOM_STR",
CONSTRAINT "SOTRUDNIK_PK" PRIMARY KEY ("KOD_SOTR")
);
SET TERM ^ ;

Последний раз редактировалось Stilet; 29.12.2013 в 19:52.
Ksuta-4837 вне форума Ответить с цитированием
Старый 29.12.2013, 19:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но делфи ругается
И опять нужно угадывать...
Ладно. Посмотрю скриптик. Если угадаю ошибку - отпишусь.

P.S. Посмотрел. Кое-что не нравится.
1)
Цитата:
CREATE TABLE "CEX"
(
"KOD_CEX" "DOM_KOD",
А типы полей где?
2) Вверху скрипта SELECT. Он что тут делает?

Пока других ошибок не вижу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.12.2013, 00:14   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Виталий, если Вы поняли в чём у TC ошибка, поясните, плиз, а где вообще код, на который "Delphi ругается"?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.12.2013, 05:53   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Код:
SELECT H.NAME_HARAKTER, C.KOD_CEX
FROM OBORUDOVANIE C, HARAKTERISTIKA H, OSMOTR OSM
WHERE C.KOD_CEX=2 AND
OSM.SOSTOJANIE LIKE 'В%'
Очевидно, "ругалось" на необъявленный алиас таблицы С (ругалась субд)
Не знаю, как отработает бд работу с таблицами через запятую и по внешним ключам, я бы тупо написал через join (если надо - набросаю Вам).
dom_kod dom_str - мне кажется и есть типы полей, субд кстати хоть назовите, а то даже видавшие виды люди впервые видят эти типы.
ну и ещё непонятна мне строка
SET TERM ^
А ещё скажите, кто создавал таблицы? Вы сами, или это сгенерированный код, после того, как Вы собрали всё в конструкторе таблиц?

ПС. возможно, что в запросе ещё надо добавить AND C.KOD_OBOR = OSM.KOD_OBOR AND C.KOD_HARAKTER = H.KOD_HARAKTER что и будет аналогом join в данном случае, и по идее должно отработать нормально.

Последний раз редактировалось phomm; 30.12.2013 в 06:38.
phomm вне форума Ответить с цитированием
Старый 30.12.2013, 09:02   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

phomm, спасибо. вопрос снят.
с советами полностью согласен!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.12.2013, 09:23   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если Вы поняли
Мое дзютцу телепатии не настолько круто, поэтому я просто просмотрел скрипт, и повыбирал самые броские ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибку imworld Помощь студентам 1 20.02.2012 19:54
что нужно исправить в запросе deni1982 PHP 0 15.02.2011 14:24
Помогите найти ошибку в SQL запросе rockedit SQL, базы данных 0 07.12.2009 17:44
Помогите найти ошибку в запросе..... Speeker БД в Delphi 0 08.11.2009 16:54
Помогите найти ошибку в SQL- запросе Tan БД в Delphi 2 03.04.2008 18:20