Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

Проблема с запросом на вставку множества записей в таблицу 


pusrg   (2002-01-24 16:49) [0]

Уважаемые мастера помогите разобраться со следующим запросом (БД Парадокс):

insert into Goods (ID, Name, Price)
select Const, Name, Price from Temp;

Где Сonst - какое-то целое число;
поле ID типа integer;

При выполнении выдается ошибка: Type mismatch in expression - не совпадение типов.
Пробовал несколько различных вариантов, а именно:
1. Подставлял вместо Const целое число:
insert into Goods (ID, Name, Price)
select 1, Name, Price from Temp;

2.Использовал параметр:
insert into Goods (ID, Name, Price)
select :ID, Name, Price from Temp;
...
Query.ParamByName("ID").AsInteger:=1;

3.Использовал псевдоним:
insert into Goods (ID, Name, Price)
select (1) as Temp_ID, Name, Price from Temp;

В любом случае один и тот же результат...

В общем случае вопрос сводиться к следующему: можно ли использовать какие-то константы в LocalSQL для вставки их в др. таблицу?

Спасибо за содействие.



Judith   (2002-01-24 18:00) [1]

А почему select? Насколько я знаю, синтаксиз д.б.
insert into Table1 (col1, col2, ...) values (val1, val2, ...)



Praco   (2002-01-24 18:08) [2]

ID случайно не автоинкремент?



asafr   (2002-01-24 18:13) [3]

Парадокс не знаю, но, скорее всего, Name - зарезервированное слово, поле таблицы не должно так называться.



asafr   (2002-01-24 18:15) [4]

Да и Const, сдается мне, тоже из тех слов.



pusrg   (2002-01-24 18:18) [5]

To Judith:
Естественно это стандартная конструкция, позволяющая вставлять одну (!) запись в таблицу; конструкция, используемая мной позволяет копировать всю (!) таблицу в одном запросе, РАЗНИЦУ ЧУВСТВУЕШЬ...

To Praco:
Нет ID типа Integer. Хотя по смыслу она и хранит ID из другой таблицы - там это поле автоинкремент.

Теперь отвечаю сам себе (Удивительно как раньше не догадался):
insert into Goods (ID, Name, Price)
select Cast(1 as INTEGER), Name, Price from Temp;

Нужно делать явное преобразование типа, все прекрасно работает...





pusrg   (2002-01-24 18:22) [6]

To Asafr:
Если бы проблема была в зарезервированных, словах LocalSQL мне про это и сказал бы (Name точно не зарезервировано).
А правильный ответ читай выше.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.014 c
3-56995           vopros                2002-01-22 15:03  2002.02.18  
Опять paradox. опять индексы...Теперь пишет Index is ReadOnly


3-56974           Натик                 2002-01-22 10:19  2002.02.18  
Сложный индекс?


1-57049           Ura                   2002-02-01 18:37  2002.02.18  
Опять потоки. Круговорот.


1-57139           ATLANTIDO             2002-02-03 19:32  2002.02.18  
TStringList


1-57062           nikols                2002-02-01 16:34  2002.02.18  
Какой тип у редактора свойства Expression компонента TQRExpr?