Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
ВнизПодскажите в чем ошибка в запросе на вставку Найти похожие ветки
← →
DimonS © (2006-10-09 08:38) [0]Нужно из файла mc502.dbf вставить поля TabN и FIO в таблицу FIO (поля Tn,FIO). Пишу так (в самом Access-е):
insert into FIO in [Tn,FIO] select [TabN,FIO] from ""D:\mc502.dbf""
При выполнении пишет: Неполное предложение запроса.
Что-то не пойму, где копать, подскажите, в чем апшипка.
Пример брал отсюда:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/office97/html/output/F1/D2/S5A32B.asp
Multiple-record append query:INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression
← →
Ketmar © (2006-10-09 08:41) [1]и что ты хотел сказать квадратными скобками в запросе?
← →
DimonS © (2006-10-09 08:44) [2]Если их не ставить - ругается на запятую. Как правильно?
← →
DimonS © (2006-10-09 08:48) [3]Если смотреть пример, то надо, наверное, так:
insert into FIO in Tn[,FIO] select TabN,FIO from ""D:\mc502.dbf""
Но тоже - Неполное предложение запроса.
← →
Sergey13 © (2006-10-09 09:08) [4]> [3] DimonS © (09.10.06 08:48)
insert into FIO(Tn,FIO) select TabN,FIO from ""D:\mc502.dbf""
← →
DimonS © (2006-10-09 09:10) [5]
> Sergey13 © (09.10.06 09:08) [4]
Пробовал так - Неполное предложение запроса. Не получается.
← →
Sergey13 © (2006-10-09 09:18) [6]> Нужно из файла mc502.dbf вставить поля TabN и FIO в таблицу
> FIO (поля Tn,FIO). Пишу так (в самом Access-е):
Так у тебя разнотипные БД? Не заметил сначала.
Тогда такое вряд прокатит. Компоненты доступа какие? В BDE возможны гетерогенные запросы.
← →
DimonS © (2006-10-09 09:21) [7]Кстати, если запустить запрос из дельфей:
ADOCom.CommandText:=insert into FIO(Tn,FIO) select TabN,FIO from ""D:\mc502.dbf"""";
ADOCom.Execute;
выскакивает ошибка: Неправильно определен объект Parametr. Недопустимые или неполные сведения.
Это одно и тоже, вроде бы?
← →
DimonS © (2006-10-09 09:22) [8]
> Sergey13 © (09.10.06 09:18) [6]
Да, разнотипные.
Вроде бы можно, читал, что должно прокатить. Компоненты - ADO.
← →
DimonS © (2006-10-09 09:24) [9]Вот, вроде бы тоже самое:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=40317
Но вот не прокатывает...
← →
DimonS © (2006-10-09 09:37) [10]Все, вопрос снят!
INSERT INTO FIO ( Tn, FIO ) IN "C\Bonus.mdb"
SELECT TabN, FIO
FROM mc502.dbf IN "D:\"[dBase IV;];
Работает на ура :)
← →
DimonS © (2006-10-09 10:13) [11]Вопрос в догонку.
Что нужно дописать, чтобы дописывались только новые записи? Т.е. обновлять базу.
Пишу так:INSERT INTO FIO ( Tn, FIO ) IN "C\Bonus.mdb"
SELECT TabN, FIO
FROM mc502.dbf IN "D:\"[dBase IV;] where Tn<>TabN
естественно, ошибка: Поле Tn не имеет значения по умолчанию.
А если так:INSERT INTO FIO ( Tn, FIO ) IN "C\Bonus.mdb"
SELECT TabN, FIO
FROM mc502.dbf IN "D:\"[dBase IV;] where Tn<>(select Tn from FIO)
то ничего не вставляется. Как будет правильно?
← →
Sergey13 © (2006-10-09 10:16) [12]> where Tn<>(select Tn from FIO)
where not exist (select 1 from FIO f1 where f1.TN=FIO.TN)
← →
DimonS © (2006-10-09 10:26) [13]
> where not exist (select 1 from FIO f1 where f1.TN=FIO.TN)
Тогда ругается на FIO.TN - не имеет значения по умолчанию :)
← →
Sergey13 © (2006-10-09 10:29) [14]> [13] DimonS © (09.10.06 10:26)
Я вроде перепутал. Как то так.FROM mc502.dbf N IN "D:\"[dBase IV;] where not exist (select 1 from FIO f1 where f1.TN=N.TabN)
← →
DimonS © (2006-10-09 10:37) [15]Да, я так примерно и сделал.
Но что-то не то - ничего не вставляет в пустую таблицу...
← →
DimonS © (2006-10-09 10:48) [16]А если таблица заполнена - то ошибка: Данный подзапрос должен возвращать не больше одной записи!
← →
Sergey13 © (2006-10-09 10:52) [17]> [16] DimonS © (09.10.06 10:48)
А как ты конкретно "так примерно и сделал" ?
← →
DimonS © (2006-10-09 10:56) [18]В смысле дал название таблицы, только не N, а B :)
Пробовал и твой вариант скопировать - то же самое.
← →
Sergey13 © (2006-10-09 11:04) [19]> [18] DimonS © (09.10.06 10:56)
Сомнительно, что бы not exist подзапрос выдавал такую ошибку.
← →
DimonS © (2006-10-10 01:55) [20]
> Сомнительно, что бы not exist подзапрос выдавал такую ошибку.
Но, как ни странно, выдает...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.059 c