Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка записи в базу [D6, dBase, FoxPro]


Tomb ©   (2002-12-02 11:49:00) 

Уважаемые мастера, есть такая ситуация.
Имеем 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 12:41:00) [1]


> Нет, f - это обычная переменная в программе. Т.е. получается,
> что поля b и c перекрываются полями d и e, а в поле а необходимо
> вставить значение из обычной переменной.

В таком случае:

INSERT INTO tbl1(a,b,c) VALUES (IntToStr(f), (SELECT d FROM tbl2), (SELECT e FROM tbl2))


ЮЮ   (2002-12-02 12:19:00) [2]

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;


Tomb   (2002-12-02 12:15:00) [3]

Нет, f - это обычная переменная в программе. Т.е. получается, что поля bи cперекрываются полями dи e, а в поле анеобходимо вставить значение из обычной переменной.


FreeLancer   (2002-12-02 11:59:00) [4]

То есть поле №1 (IntToStr(f)) выбирается динамически? Что ж если таковое есть в таблице и если оно int, все будет работать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо