![]() |
| ||
|
|
Новости |
Поиск |
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)
MsGuns (2010-07-13 21:41:00) [21]>12 ©
Тебе бы еще учиться и учиться, а ты лезешь везде со своими советами :)
Anatoly Podgoretsky (2010-07-12 21:59:00) [22]> Irisss (12.07.2010 17:31:11) [11]
Какой еще %s в запросе?
Irisss (2010-07-12 17:51:00) [23]Нашел ошибку, буду дальше думать. Спасибо
Irisss (2010-07-12 17:31:00) [24]сделал, как сказали:
Request := ' INSERT INTO %s ( ID_CALC, ID_ITEM, ID_CALC_MODE, ITEM_VALUE)'
+ 'VALUES (:ID_CALC, :ID_ITEM, :ID_CALC_MODE, :ITEM_VALUE)';
query.Close;
query.SQL.Clear;
query.SQL.Add(Request);
query.paramByName('ID_CALC').AsString := ItemTableName;
query.paramByName('ID_ITEM').AsString := calculation_id;
query.paramByName('ID_CALC_MODE').AsInteger := id_item_type;
query.paramByName('ITEM_VALUE').AsDouble := item.Value;
query.ExecQuery();
Выдало ошибку:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 14.
%.
О чем это оно со мной разговаривает?
12 (2010-07-12 17:18:00) [25]так как-то если
' INSERT INTO REP_VAL_TURBINE_1_PT_65
(ID_CALC, ID_ITEM, ID_CALC_MODE, ITEM_VALUE)
VALUES
(:F1, :F2, :F3, :ITEM_VALUE)'
query.paramByName('ITEM_VALUE').AsDouble := item.Value;
query.paramByName('F1').AsDouble := item.Value; // по смыслу
query.paramByName('F2').AsDouble := item.Value;
query.paramByName('F3').AsDouble := item.Value;
query.ExecSQL
query session/connection commit
Irisss (2010-07-12 17:08:00) [26]Большое СПАСИБО за ответы
Вот еще одна незадача(или скорее задача). Запрос не выдает вообще ни одной ошибки, а результат не присваевает.
Запрос все тот же:
' INSERT INTO REP_VAL_TURBINE_1_PT_65
(ID_CALC, ID_ITEM, ID_CALC_MODE, ITEM_VALUE)
VALUES
(''29062010937'', 10, ''FACT'', :ITEM_VALUE)'
пишу так
Request := Format(' INSERT INTO %s (ID_CALC, ID_ITEM, ID_CALC_MODE, ITEM_VALUE)'
+ 'VALUES (''%s'', %d, ''%s'', :ITEM_VALUE)',
[ItemTableName, calculation_id, id_item_type, calc_mode ]);
query.Close;
query.SQL.Clear;
query.SQL.Add(Request);
query.paramByName('ITEM_VALUE').AsDouble := item.Value;
query.ExecQuery();
Подскажите, что неправильно
Anatoly Podgoretsky (2010-07-12 13:25:00) [27]
> кричит на тот же запрос
Где сам запрос?
12 (2010-07-12 12:41:00) [28]ну нет значит в главной таблице такого значения, которое в подчиненную вставляется
Irisss (2010-07-12 12:30:00) [29]кричит на тот же запрос, но с параметром, что вот есть такая ошибка:
> Violation of FOREIGN KEY constraint"".
> Violation of FOREIGN KEY constraint "FK_REP_VAL_TLIRB_1_ID_ITEM"
> on table " REP_VAL_TUR_1_65".
> Foreign key reference target does not exist.
Anatoly Podgoretsky (2010-07-12 11:09:00) [30]
> а MS SQL SERVER считает, что это 2 числа
а MS SQL SERVER так не считает, а считает, что это два параметра/объекта.
И. Павел (2010-07-12 10:39:00) [31]> в значении типа Double строка запроса содержит запятую,
> а не точку
Оказывается, уже нашли проблему. Используйте параметры - и таких трудностей не возникнет.
И. Павел (2010-07-12 10:37:00) [32]У вас в Value - 5 параметров, а указано всего 4 поля. Скорее всего, вы считаете, что 0,00 - это 1 число, а MS SQL SERVER считает, что это 2 числа :)
Irisss (2010-07-12 10:12:00) [33]Сказало, что запрос неправильно составлен.
Скорее всего, я нашел в чем дело: в значении типа Double строка запроса содержит запятую, а не точку.
Буду разбираться
спасибо
Anatoly Podgoretsky (2010-07-12 10:06:00) [34]И что кроме номера, больше ничего?