|
|
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток господа! Существует следующая задача: Есть БД Access написанная по файл-серверной технологии. Требуется из клиентского интерфейса обратиться к прилинкованным таблицам и перенести некоторые из них в новую БД с сохранением структуры, причём вся содержащаяся в них информация должна перелиться вместе с ними. Help pls! (TransformObject не помогает, т.к. таблицы в новой БД так и остаются прилинкованными) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 08:59 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
А обычный импорт не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:05 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
При обычном импорте также импортируются только ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:07 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
2AlTis >При обычном импорте также импортируются только ссылки. Ты откуда импортируешь-то? От туда где ссылки. Импортируй из _данных_. Или ты вместо импортирования - делаешь создать связь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:13 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor >Ты откуда импортируешь-то? От туда где ссылки. Импортируй из _данных_. Или ты вместо импортирования - делаешь создать связь. Пользователь в клиентском интерфейсе нажимает кнопку "Сохранить текущее состояние". При этом необходимо програмно сохранить 5-6 таблиц ,находящихся на серверной части, в отдельный .mdb файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:28 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
2AlTis >При этом необходимо програмно сохранить 5-6 таблиц ,находящихся на серверной части, в отдельный .mdb файл. ты скорее всего свои клиентские прилинкованные таблицы и импортируешь в новую базу - импортируй таблицы из файла с данными. Вариантов переноса тьма, можно было бы и запросом на создание таблиц, например, а не только импортом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:48 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor Я перебрал все известные мне методы. Ничего не получается. При выполнении запроса на создание табл., изменяется структура табл., не переносится описание полей и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 10:56 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
так тебе данные надо перенести данные или структуру с описанием? Если и то и другое то можно попробовать через : - docmd.CopyObject - Через DAO или ADOX. Используя коллекцию Fields, для просмотора свойств поля у исходной таблицы и установке этого свйоства у конечной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:10 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Мне необходимо перенести и данные и структуру (для того чтобы при нажатии кнопки "Загрузить данные на" определённую дату, таблицы из копии переливались в серверную часть БД). Я рассматривал предложенный тобою метод. Он мне не подходит из-за трудоёмкости, и невозможности перенести ВСЕ свойства полей. В сиквельном сервере проблем бы не было. Я бы выполнил скрипт на создание таблицы, и слил данные. В Access такого нет. Или я ошибаюсь? docmd.CopyObject - опять же переносит только линки.... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:22 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
А не легче ли тогда создать копию таблицы с данными и по-удалять не нужные таблицы? Тогда и связи сохраняться. А как ты Docmd.CopyObject использовал, что он у тебя только линки переносит? У него один из параметров "sourceobjectname" - где надо было бы указать имя базы с данными, а не товю клиентскую базу. Только он тебе связи-то не перенесет. А использовать DAO/ADOX не так уж и страшно - в цикле по исходной таблице бежишь по семейству Propertes и присваиваешь все найденный Property новой таблице (заранее созданной запросом на создание таблицы, например) Так же поступаешь с ReLations - циклом по всем связям в которых совпадают имена таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:34 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Перенсти данные вместе со структурой можно с помощью Query SELECT Tab1.* INTO Tab_new FROM Tab1; при этом создается новая таблица Tab_new идентичная по структуре Tab1 и в нее переносятся все данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:55 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor >А как ты Docmd.CopyObject использовал, что он у тебя только линки переносит? У него один из параметров "sourceobjectname" - где надо было бы указать имя базы с данными, а не товю клиентскую базу. Только он тебе связи-то не перенесет есть 3 БД: db1 - клиент ,db2 - данные ,db3 - созданная БД Находясь в db1 необходимо из db2 перенести таблицу в db3 Выполняю следующий код из db1: dim strPath as string ' Путь к db3 DoCmd.CopyObject strPath, "Table1", acForm, "Table1" ... переносится только связь к таблице Table1 >А использовать DAO/ADOX не так уж и страшно - в цикле по исходной таблице бежишь по семейству Propertes и присваиваешь все найденный Property новой таблице (заранее созданной запросом на создание таблицы, например) До некоторых свойств полей я так и не смог достучаться (например источник строк для поля со списком) Подкиньте ещё идей, pls ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 13:45 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
>dim strPath as string ' Путь к db3 c 10-33 я тебе пытаюсь объяснить - КОПИРУЙ ИЗ ДАННЫХ На фига ты делаешь "dim strPath as string ' Путь к db3 " должно быть "dim strPath as string ' Путь к db2 -ТАМ ГДЕ ДАННЫЕ" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 13:57 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Блин, поторопился, не договорил... Надо запускать копирование из твоей db2. Т.е. от туда где данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 14:06 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
В том то и дело, что процедура запускается из db1. Я не знаю как запустить процедуру, находящиюся в db2 из db1... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 14:53 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Ну, тогда просто копируй базу с данными и уже из этой копии удаляй не нужное . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 15:35 |
|
||
|
Перенос объектов БД
|
|||
|---|---|---|---|
|
#18+
Для импорта/экспорта в 97 (как и во 2.0 :) можно пользовать DoCmd.TransferDatabase шняга для копирования есть на каком то из форумов (тип копирования экспорт/импорт, структура/данные задается параметрами) Связи: Работает (с точностью до неких изменений синтаксиса) даже в мса2.0 (потому и циклы явные, а не по семействам) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Но если приложение не редактирует программно связи, то имхо это не нужно - достаточно иметь копию структур и сливать данные НЕ запросами на создание (импортом/экспортом), а обычными запросами на добавление (по необходимости очищая запросами на удаление). И тут параллельно, линкованные таблы или родные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 17:01 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32162770&tid=1681480]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 401ms |

| 0 / 0 |
