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

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

Неправильный запрос


Страницы:   1 2

Irisss ©   (2010-07-12 10:02:00) 

Сделал запрос,
высвечивает ошибку -804
Что пишу неправильно, подскажите пожалуйста.
Типы вроде бы совпадают
INSERT INTO REP_VAL_TUR_1_65 (ID_CALC, ID_ITEM, ID_CALC_MODE, ITEM_VALUE)VALUES (''29062010937'', 10, ''FACT'', 0,00)


Юрий Зотов   (2010-07-20 11:02:00) [1]

> Irisss   (20.07.10 10:28) [32]

Переведите с английского:
Foreign key reference target does not exist.
и погуглите на тему "foreign key" (внешний ключ, внешняя ссылка) - что это такое и с чем его едят.

Вообще, действительно - прежде, чем браться за разработку БД было бы неплохо освоить хотя бы азы этих самых БД. Тем более, что материалов на эту тему - выше крыши.

Иначе сильно напоминает блондинку, которая за руль села, но где какая педаль и для чего она нужна - не знает. Поэтому на каждом метре останавливается и спрашивает у соседних водителей.


Anatoly Podgoretsky   (2010-07-20 10:40:00) [2]

> Irisss  (20.07.2010 10:28:32)  [32]

Тебе в других совсем других форума

1. форум по ИБ
2. форум "учимся английскому"


Irisss   (2010-07-20 10:28:00) [3]

подскажите еще, пожалуйста, что он мне пишет:
Project InRep.exe raised exception class EFIBInterBaseError with message Violation of FOREIGN KEY
constraint"".
Violation of FOREIGN KEY constraint "FK_INIT_ITEM_TYPE_TURB_1_PT_65" on tab|e
"REP_ITEM_TURBINE_1 _PT_65".
Foreign key reference target does not exist.


и как это исправить


Anatoly Podgoretsky   (2010-07-16 11:54:00) [4]


> и лучше новую строку писать с пробела

Одназначно.


Плохиш   (2010-07-16 11:04:00) [5]


> Irisss   (16.07.10 09:57) [25]

Пора уже программиста нанять.


Irisss   (2010-07-16 11:03:00) [6]

пробела не хватало, спасибо


Юрий Зотов   (2010-07-16 10:39:00) [7]

См. [19].
Commit есть?


Омлет   (2010-07-16 10:23:00) [8]

А по этому же условию поле находит через SELECT?


12   (2010-07-16 10:21:00) [9]


> Ошибок не выдает

точно? а они не гасятся нигде?

и лучше новую строку писать с пробела

>            Request := 'UPDATE '
>                     + ItemTableName + ' '
>                     + '[пробел]SET ITEM_VALUE = :ITEM_VALUE '
>                     + '[пробел]WHERE (ID_CALC = :ID_CALC) '
>                     + '[пробел]AND (ID_ITEM = :ID_ITEM) '
>                     + '[пробел]AND (ID_CALC_MODE = :ID_CALC_MODE)
> '
>                     + '[пробел]AND (ID_MODE = :ID_MODE)';

влруг что склеилось?


Irisss   (2010-07-16 09:57:00) [10]

Уважаемые мастера,
помогите еще с одним вопросом:
сделал обновление поля. Работает каждый n-ый раз, толко когда захочет
запрос такой
           Request := 'UPDATE '
                    + ItemTableName + ' '
                    + 'SET ITEM_VALUE = :ITEM_VALUE '
                    + 'WHERE (ID_CALC = :ID_CALC) '
                    + 'AND (ID_ITEM = :ID_ITEM) '
                    + 'AND (ID_CALC_MODE = :ID_CALC_MODE) '
                    + 'AND (ID_MODE = :ID_MODE)';

       query.Close;
       query.SQL.Clear;
       query.SQL.Add(Request);
       query.paramByName('ID_CALC').AsString       := calculation_id;
       query.paramByName('ID_ITEM').AsInteger      := id_item_type;
       query.paramByName('ID_CALC_MODE').AsString  := calc_mode;
       query.paramByName('ID_MODE').AsInteger      := 11;
       query.paramByName('ITEM_VALUE').AsDouble    := item.Value;
       query.ExecQuery();
   con.DataBase.Commit();
   query.Free();


запрос получается такой:
UPDATE REP_VAL_TURBINE_1_PT_65
SET ITEM_VALUE = 1
WHERE (ID_CALC = '29062010937')
AND (ID_ITEM = 10)
AND (ID_CALC_MODE = 'FACT')
AND (ID_MODE = 1)


Ошибок не выдает, но и поле не обновляет.

Подскажите что, а?


Двенадцать   (2010-07-15 13:20:00) [11]

тебе в [10], жирным, зачем писалось :)


Irisss   (2010-07-15 13:13:00) [12]

Удалено модератором


Irisss   (2010-07-15 13:13:00) [13]

Заработало!
спасибо большое


Двенадцать   (2010-07-15 13:03:00) [14]

это метод, должен быть
в любом случае, у сессии должен быть

Oracle, вроде, так?
тип query?
ADO, DOA?


Irisss   (2010-07-15 12:34:00) [15]

у query такого свойства вроде бы нет


Двенадцать   (2010-07-15 12:29:00) [16]

> Запрос проходит, а данные не заносятся

commit есть?


Irisss   (2010-07-15 11:50:00) [17]

Попробовал набрать запрос в Script Executive:
INSERT INTO REP_VAL_TURBINE_1_PT_65
( ID_CALC,  ID_ITEM,  ID_CALC_MODE,  ITEM_VALUE)
VALUES
('29062010937', 10, 'FACT', 0)


Выдало:
Script executed with errors!
Total execution time: 16ms


Где ошибаюсь?


Irisss   (2010-07-15 11:33:00) [18]

Удалено модератором


Irisss   (2010-07-15 11:32:00) [19]

Такой код:
       Request := Format(' INSERT INTO %s ( ID_CALC,  ID_ITEM,  ID_CALC_MODE,  ITEM_VALUE)'
                + ' VALUES (:ID_CALC, :ID_ITEM, :ID_CALC_MODE, :ITEM_VALUE)', [ItemTableName] );

       query.Close;
       query.SQL.Clear;
       query.SQL.Add(Request);
       query.paramByName('ID_CALC').AsString       := calculation_id;
       query.paramByName('ID_ITEM').AsInteger      := id_item_type;
       query.paramByName('ID_CALC_MODE').AsString  := calc_mode;
       query.paramByName('ITEM_VALUE').AsDouble    := item.Value;


Формируется такой запрос:
' INSERT INTO REP_VAL_TURBINE_1_PT_65 ( ID_CALC,  ID_ITEM,  ID_CALC_MODE,  ITEM_VALUE) VALUES (:ID_CALC, :ID_ITEM, :ID_CALC_MODE, :ITEM_VALUE)'

Запрос проходит, а данные не заносятся. Господа мастера, подскажите, пожалуйста, в чем дело?


Двенадцать   (2010-07-14 09:52:00) [20]

> Тебе бы еще учиться и учиться, а ты лезешь везде со своими
> советами :)

чукча не читатель :)
а конкретно, что не так?


Страницы:   1 2

Наверх

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