Главная страница
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
14-61771
Fantasist
2002-11-26 05:53
2002.12.19
Вот ссылку не могу найти.


6-61743
F1
2002-10-22 14:04
2002.12.19
Вот как нужно передавать файлы через Socket!!!


1-61586
Explorer
2002-12-10 09:27
2002.12.19
---|Ветка была без названия|---


4-61862
DOOMin
2002-11-06 13:19
2002.12.19
CreateFile( LPT1 , ....) в DLL


3-61439
bedniy_student
2002-11-29 09:46
2002.12.19
SQL