Форум: "Базы";
Поиск по всему сайту: 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.024 c
1-57105           GoodBytes             2002-02-02 15:29  2002.02.18  
Где найти?


6-57165           Zharik                2001-11-28 12:41  2002.02.18  
Как в Delphi пройти через прокси-сервер, в котором есть имя и пароль?


1-57098           Евгений-Зеленоград    2002-02-02 12:43  2002.02.18  
How i can make this?????


14-57194          RaZEr                 2001-12-27 06:35  2002.02.18  
Автозапуск ! где ?


4-57252           DIMA S                2001-12-19 02:26  2002.02.18  
WIN API