![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неправильный запрос
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]> Тебе бы еще учиться и учиться, а ты лезешь везде со своими
> советами :)
чукча не читатель :)
а конкретно, что не так?