Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизВставка записи в базу Найти похожие ветки
← →
Tomb (2002-12-02 11:49) [0]Уважаемые мастера, есть такая ситуация.
Имеем 2 таблицы например tbl1 с полями
a - int
b - int
c - date
и tbl2 с полями
d - int
e - date.
Необходимо вставить из таблицы tbl2 в таблицу tbl1 данные, при этом в поле a необходимо вставить значение из переменной f. Пишу запрос
"insert into tbl1 select "+IntToStr(f)+",d,e from tbl2"
Выдается ошибка "Type mismatch in expression".
Где руки править?
← →
FreeLancer (2002-12-02 11:59) [1]То есть поле №1 (IntToStr(f)) выбирается динамически? Что ж если таковое есть в таблице и если оно int, все будет работать.
← →
Tomb (2002-12-02 12:15) [2]Нет, f - это обычная переменная в программе. Т.е. получается, что поля b и c перекрываются полями d и e, а в поле а необходимо вставить значение из обычной переменной.
← →
ЮЮ (2002-12-02 12:19) [3]insert into tbl1 select 1,d,e from tbl2
может 1 получается не int? Хотя трудно прдедположить, что оно не конвертнётся в int.
Используй параметр:
"insert into tbl1 select :a,d,e from tbl2"
query.Params[0].Value := f;
← →
FreeLancer (2002-12-02 12:41) [4]
> Нет, f - это обычная переменная в программе. Т.е. получается,
> что поля b и c перекрываются полями d и e, а в поле а необходимо
> вставить значение из обычной переменной.
В таком случае:
INSERT INTO tbl1(a,b,c) VALUES (IntToStr(f), (SELECT d FROM tbl2), (SELECT e FROM tbl2))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c