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)


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]

И что кроме номера, больше ничего?


Страницы:   1 2

Наверх

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