Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизПроблема с ADO + MSAccess Найти похожие ветки
← →
tesseract (2004-01-28 13:19) [0]Следующий трабл - имеется несколько файлов *.MDB - они содержа несколько таблиц. Эти таблицы надо переместить в одну базу данных, чтобы сделать выборку и тд. Кто-нибудь знает почему в таких случаях не работает clone и Adocommand.execute?
← →
sniknik (2004-01-28 15:23) [1]> Следующий трабл - имеется несколько файлов *.MDB
да точно это трабл, нужно срочно от таких файлов избавлятся. ;о)
> Кто-нибудь знает почему в таких случаях не работает clone и Adocommand.execute?
в каких случаях? и причем здесь clone к базе совсем не относяшийся, и "execute" без команды на execute?
не скромничай приведи весь список случаев и неработающих вещей. (у меня вот холодильник не работает подозреваю и сдесь рука мелкософта с борманом ;о))))
кстати, чтобы сделать выборку совсем не обязательно все таблицы в одну базу перемесщать.
← →
denisov (2004-01-28 20:12) [2]хехе.) Импорт... не пробывал еси на то пошло?
← →
tesseract (2004-01-29 09:35) [3]Случай в другом - команда на execute "Select * from "TableName"", просто имеется этих баз - 20-30, отчёты разных организаций и их надо в авто режиме сливать в одну, для генерации отчётов, clone что-то делает, точнее пишет что что-то сделал. Но нужно просто копировать содержание одной из таблиц всех баз данных в результирующую.
Тренируй гемморой нахывается.
← →
sniknik (2004-01-29 10:45) [4]clone делает копию рекордсета.
по команде execute "Select * from TableName" датасет получает запрошеный рекордсет.
в чем геморой? и зачем копировать?
так и не понял вопроса, но предупреждение уже созрело (лишним не будет)
> просто имеется этих баз - 20-30
размер баз? если ты реализуеш свою схему с копированием то в одну базу все просто не поместится.
переосмысль задачу. думай о том зачем тебе это тужно (копирование) а не как это сделать.
(ну не верю я что задача именно в том чтобы переписать, наверняка "скопировать" это только средство)
> для генерации отчётов
это отмазка, отчеты не работают непосредственно с базами, а как получен рекордсет и из скольких баз им глубоко плевать.
← →
tesseract (2004-01-30 17:07) [5]Нужно именно скопировать данные из нескольких баз в одну.
← →
sniknik (2004-01-30 17:21) [6]ну жчтож, я предупреждал
делаеш запрос
INSERT INTO Table1 SELECT * FROM LinkTable1
Table1 куда копируеш
LinkTable прилинкованная таблица из другой базы (линк в аксессе делаеш, просто, по меню полазь увидиш)
и т.д. для остальных.
запрос можеш сделать в самом аксессе. (не парься пока с программированием, просто попробуй собрать все в одном... посмотри на размер.... подумай что будет через полгода)
← →
Nikolai_S (2004-01-30 17:23) [7]
INSERT INTO TABLE1(FIELD1, FIELD2)
SELECT FIELD1, FIELD2 FROM [C:\my_db.mdb].[TABLE2]
← →
BAYES (2004-02-01 16:33) [8]Заинтересовался этой "веткой".
Но при выполнения запроса выскакивает
ADOQverty1: CommandText does not return a result set
Еще как отловить ошибку при копировании одинаковых ключевых полей?
Спасибо.
← →
chtr (2004-02-02 07:19) [9]
> Но при выполнения запроса выскакивает
> ADOQverty1: CommandText does not return a result set
Конечно у Insert нет "RESULT SET" надо не Open, а ExecSQL;
> Еще как отловить ошибку при копировании одинаковых ключевых
> полей?
Наверно надо изменять значения в ключевых полях? (Не уверен что понял вопрос)
← →
tesseract (2004-02-02 09:54) [10]Спасибо sniknik пашет на ура, только не всегда быстро Ж-)
← →
tesseract (2004-02-02 09:54) [11]Спасибо sniknik пашет на ура, только не всегда быстро Ж-)
← →
BAYES (2004-02-02 10:08) [12]>Конечно у Insert нет "RESULT SET" надо не Open, а ExecSQL;
Блин точно!
>Наверно надо изменять значения в ключевых полях? (Не уверен что понял вопрос)
С этой штукой сложнее. При первом копировании, все ОК! А при повторно копировании, выскакивает :"Изменения не были внесены из-за повторяющихся значений в индексе, ключевых полях и индексе......и т.д.". Изменять их не нужно, просто нужно "выловить" эту ошибку.
>........FROM [C:\my_db.mdb].[TABLE2] [7]
C:\my_db.mdb эта штука не реальна, база только открыв. из директории проекта или партишена проекта. При данном указывании появляеться: "Неправильно определен объект Parameter....."
Мутил долго, но так и не получилось откр. базу с того места где мне нужно.
← →
chtr (2004-02-02 10:20) [13]
>Изменять их не нужно, просто нужно "выловить" эту ошибку.
Что значит выловить? Ты хочешь добавит в таблицу запись с уже имеющимся значением в ключевом поле. Т.е. поле не допускает повторяющихся значений. Либо убирай ключ, либо изменяй значения. Может тебе Update нужен?
← →
BAYES (2004-02-02 10:25) [14]Нет! Update не нужен, просто мне вместо этого стандартного сообщени вывести своё.
← →
sniknik (2004-02-02 10:28) [15]> Спасибо sniknik пашет на ура, только не всегда быстро Ж-)
не бустро это еще не самое плохое с чем сталкнешся при таком подходе.
> При первом копировании, все ОК! А при повторно копировании, выскакивает:"Изменения не были внесены из-за повторяющихся значений в индексе
не задавай поля с уникальньым индексом, проще, если ключь, сделать его автоинкрементом и не указывать поле при переносе.
> C:\my_db.mdb эта штука не реальна,
почему, это?
просто отключи автоопределение параметров перед внесением запроса.
и лутше наверное как синтаксис поправить как мелкософт в хелпах советует
INSERT INTO TABLE1(FIELD1, FIELD2)
SELECT FIELD1, FIELD2 FROM TABLE2 IN "C:\my_db.mdb"
← →
chtr (2004-02-02 11:45) [16]
> BAYES © (02.02.04 10:25) [14]
Наверно ты ее не выловишь. Может лучше добавлять записи которых нет в таблице? что нить вроде
INSERT INTO TAB1 SELECT TAB2.*
FROM TAB2 LEFT JOIN TAB1 ON TAB2.id = TAB1.id
WHERE TAB1.id IS NULL
Или как говорит
> sniknik © (02.02.04 10:28) [15]
Делай автоинкремент.
← →
BAYES (2004-02-02 12:16) [17]>мелкософт в хелпах советует...
Можно поинтересоваться, а где эти хелпы можно посмотреть.
Спасибо, с твоим примером все заработало.
>Делай автоинкремент.
Естественно он есть. Именно он и ругаеться при копировании второй раз одних и тех же данных этого поля. Конечно это не смертельный случай, но хотелось бы вместо этого длинного рассказа-описания-ошибки, вывести свою, маленькую.
← →
sniknik (2004-02-02 12:40) [18]> Можно поинтересоваться, а где эти хелпы можно посмотреть.
JETSQL40.CHM хелп поставляется с ms офисом (xp/2000 точно, ранше не смотрел)
>>Делай автоинкремент.
> Естественно он есть. Именно он и ругаеться при копировании второй раз одних и тех же данных этого поля.
не указывай его в запросе, просто пропусти, * тоже не используй.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.028 c