Insert с Select'ом

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Murzil
Сообщения: 5
Зарегистрирован: 22 мар 2005, 16:07

Insert с Select'ом

Сообщение Murzil » 22 мар 2005, 16:26

Добрые и мудрые! Помогите начинающему.
Нашел в Langref такой пример:
INSERT INTO PROJECTS
SELECT * FROM NEW_PROJECTS
WHERE NEW_PROJECTS.START_DATE > ’6-JUN-1994’;
Подскажите, пожалуйста, как в параметрах запроса указать,
что Select производится из таблицы одной БД, а Insert - в таблицу
другой БД? Структура таблиц обеих баз одинаковый.
В Paradox, например, можно указать полный путь к таблице.
Как решить эту задачу для Interbase?
Заранее благодарен!

Геннадий
Сообщения: 6
Зарегистрирован: 22 мар 2005, 10:18

Сообщение Геннадий » 22 мар 2005, 16:53

Только если запускать этот запрос из DBDesktop с указанеим алиасов
как в Paradox.

Dnico
Сообщения: 12
Зарегистрирован: 18 фев 2005, 16:44

Сообщение Dnico » 22 мар 2005, 17:08

Почитать как сделать - можно тут http://www.ibase.ru/devinfo/bde.htm

Murzil
Сообщения: 5
Зарегистрирован: 22 мар 2005, 16:07

Сообщение Murzil » 23 мар 2005, 10:26

Геннадий писал(а):Только если запускать этот запрос из DBDesktop с указанеим алиасов
как в Paradox.
Запрос нужно запускать из приложения.

Геннадий
Сообщения: 6
Зарегистрирован: 22 мар 2005, 10:18

Сообщение Геннадий » 23 мар 2005, 10:40

Murzil писал(а):
Геннадий писал(а):Только если запускать этот запрос из DBDesktop с указанеим алиасов
как в Paradox.
Запрос нужно запускать из приложения.
Через BDE можно и из приложения.

Murzil
Сообщения: 5
Зарегистрирован: 22 мар 2005, 16:07

Сообщение Murzil » 23 мар 2005, 16:46

Суть задачи такая:
из одной БД нужно делать выборку данных по к.-л. условию и вставлять их в одинаковую по структуре другую БД.
СУБД - Interbase.
Подскажите, как это лучше сделать программно ,без BDE, при помощи IBX(?) ?
Думал, что проще всего sql-запросом select-insert, но разобраться с работой с двумя БД пока не могу.
Спасибо заранее!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 мар 2005, 18:08

select из одной, insert в другую. данные читать через IBX.IBSQL, писать через IBSQL или IBQuery с оператором insert.
еще лучше прочитать www.ibase.ru/devinfo/testiu.htm

Murzil
Сообщения: 5
Зарегистрирован: 22 мар 2005, 16:07

Сообщение Murzil » 24 мар 2005, 14:42

kdv писал(а):select из одной, insert в другую. данные читать через IBX.IBSQL, писать через IBSQL или IBQuery с оператором insert.
еще лучше прочитать www.ibase.ru/devinfo/testiu.htm
Если не затруднит, чуть поподробнее.

Статью прочитал, но не понял, что такое Т в запросе
"UPDATE T_INTERNAL T SET... "
Спасибо!

Murzil
Сообщения: 5
Зарегистрирован: 22 мар 2005, 16:07

Сообщение Murzil » 24 мар 2005, 14:50

kdv писал(а):select из одной, insert в другую. данные читать через IBX.IBSQL, писать через IBSQL или IBQuery с оператором insert.
еще лучше прочитать www.ibase.ru/devinfo/testiu.htm
Если не затруднит, чуть поподробнее.
Куда выбирает данные IBSQL?
Статью прочитал, но не понял, что такое Т в запросе
"UPDATE T_INTERNAL T SET... "
Спасибо!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 мар 2005, 17:54

T - это алиас. если впервые слышишь, то учи SQL.
Куда выбирает данные IBSQL
никуда. тебе не надо их буферизировать. я специально про IBSQL написал, чтобы ты не использовал IBQuery, который ЗАКЭШИРУЕТ В ПРИЛОЖЕНИИ ВСЕ ВЫБРАННЫЕ ЗАПИСИ! Тебе тормозов и сожранной памяти на клиенте хочется?

Ответить