Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Вставка записи в базу   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-61600
b-Ars
2002-12-09 12:59
2002.12.19
Предварительный просмотр у TChart


7-61837
nickolayLI
2002-10-16 14:00
2002.12.19
блокировка/и разблокировка мыши


1-61511
Mad_Ghost
2002-12-06 14:53
2002.12.19
Скока можно одновременно сетевых подключений и потоков?


14-61777
Snap
2002-11-28 02:37
2002.12.19
Любой мессидж


3-61448
Step[B.M.]
2002-11-29 21:56
2002.12.19
... устал формулировать вопрос ...