![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос к 2-м БД в ADO(Access) [D6]
msguns © (2004-09-28 16:52:00)Есть 2 аналогичные по структуре (но не по содержанию) БД аксеса.
Есть 3-я пустая, тоже аналогичная. Надо, сравнивая 1-ю со 2-й, вывести в 3-ю результирующие записи.
Просмотрел весь хэлп по аксесу, но ни намека на гетерогенные запросы (не считая импорта). Получается, что надо тупо открывать 3 курсора (2 на чтение, один на вставку) и перебором по обеим исх.БД вставлять в 3-ю результитрующие строки. SQL и вообще запросы отдыхают. Было бы здорово, если б я ошибался.
Используются компоненты доступа ADO.
Кому-то покажется дилетантским, заранее приношу свои искренние..
msguns (2004-09-28 17:23:00) [1]>DSKalugin © (28.09.04 17:17) [4]
>учи операторы SQL: exists, Any, all, in (вложенные запросы)
Спасибо за науку и, особенно, за пример, в котором почему-то нет конструкции "ÍN", в чем, собчтвенно, и заключался ключик ;))
DSKalugin (2004-09-28 17:17:00) [2]учи операторы SQL: exists, Any, all, in (вложенные запросы)
CREATE TABLE "detail_number_book1" (
"cod1" INTEGER NOT NULL,
"dn_number1" VARCHAR(30) NOT NULL,
"dn_maker1" SMALLINT NOT NULL,
"dn_groups1" SMALLINT,
"sklad_comment" VARCHAR(90)
);
CREATE TABLE "detail_number_book2" (
"cod2" INTEGER NOT NULL,
"dn_number2" VARCHAR(30) NOT NULL,
"dn_maker2" SMALLINT NOT NULL,
"dn_groups2" SMALLINT,
"sklad_comment2" VARCHAR(90)
);
CREATE TABLE "detail_number_book3" (
"cod3" INTEGER NOT NULL,
"dn_number3" VARCHAR(30) NOT NULL,
"dn_maker3" SMALLINT NOT NULL,
"dn_groups3" SMALLINT,
"sklad_comment3" VARCHAR(90)
);
--------пример-------
вставляю в третью то что есть в первой, но нету во второй
--------
insert into "detail_number_book3" ("cod3", "dn_number3", "dn_maker3", "dn_groups3", "sklad_comment3")
select "cod1", "dn_number1", "dn_maker1", "dn_groups1", "sklad_comment1" from "detail_number_book1
where not exists (select "cod2" from "detail_number_book2
where "detail_number_book2"."cod2"="detail_number_book1"."cod1")
msguns (2004-09-28 17:16:00) [3]>sniknik © (28.09.04 17:05) [1]
>..файл JETSQL40.CHM..
Нашел в инсталляхе ;))
>здорово! ты ошибаешся.
Действительно здОрово !! Всегда б так ошибаться
>DiamondShark © (28.09.04 17:06) [2]
>SELECT * FROM [Товары] IN "C:\Program Files\Microsoft Office\Office\Samples\Борей.mdb"
Усе нормально, шеф ! Уже стряпаю секюэльки ;))
Спасибо широковещательное и всего самого..
DiamondShark (2004-09-28 17:06:00) [4]Во-первых, в Аксесе есть такое понятие, как "присоединённые (или связанные) таблицы".
Во-вторых, есть расширение синтаксиса SQL для доступа к внешним таблицам:
SELECT * FROM [Товары] IN "C:\Program Files\Microsoft Office\Office\Samples\Борей.mdb"
sniknik (2004-09-28 17:05:00) [5]> Просмотрел весь хэлп по аксесу, но ни намека на гетерогенные запросы (не считая импорта).
файл JETSQL40.CHM раздел "предложение IN", select into/insert into
(файл из установки офиса, скорее всего есть на машине с установленным)
> Было бы здорово, если б я ошибался.
здорово! ты ошибаешся.