Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.027 c
4-80369
BiN
2003-12-17 11:38
2004.02.25
NetGetJoinInformation - портирование функции


3-79551
Крутыш
2004-01-29 22:29
2004.02.25
Уточнение про adotable


4-80373
konstvd
2003-12-16 12:40
2004.02.25
Фокус на предыдущий котрол


1-79770
Grinder
2004-02-11 22:23
2004.02.25
Radio Button


1-79731
чайник1
2004-01-23 13:31
2004.02.25
Как отловить нажата ли кнопка Button





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский