|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
10.01.2007, 13:38 | #1 |
Регистрация: 10.01.2007
Сообщений: 5
|
Как из Delphi программно создать связь между двумя базами Access?
Сам Access позволяет создать связь с таблицей из другой базы.
Как сделать это программно из Delphi? |
11.01.2007, 06:57 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
что значит связь с таблицей из другой базы?
пример.
Берегите друг друга!
|
11.01.2007, 08:27 | #3 |
Регистрация: 10.01.2007
Сообщений: 5
|
Открываем Access.
Правым кликом вызываем меню. Выбираем пункт "Связь с таблицами..." Указываем путь к файлу *.mdb, с которым хотим установить связь. Выбираем таблицу, с которой хотим установить связь. Готово. |
11.01.2007, 13:07 | #4 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Access просто запоминает путь до 2 файла БД и названия таблиц.
похоже, что в базу прописывается. а как в программе используется ?
Берегите друг друга!
|
12.01.2007, 10:03 | #5 |
Регистрация: 10.01.2007
Сообщений: 5
|
Верно. Access запоминает путь. Делает аналог ссылки на указанную таблицу.
Есть БД, в ней хранятся быстро устаревающие данные. Старые данные замедляют работу. Стирать их нельзя. Они (редко) нужны для построения отчетов. Я предполагаю работать с основной БД, а устаревшую информацию сливать в другие *.mdb файлы. На каждый год по файлу. При построении отчета, я просто хочу подключать нужный *.mdb файл к основному. Вот тогда я и сделаю: SELECT Таблица1.Num, Таблица2.RAsmer FROM Таблица1 INNER JOIN Таблица2 ON Таблица1.Num = Таблица2.Num; Руками можно подключить базу следующим образом: Открываем Access. Правым кликом вызываем меню. Выбираем пункт "Связь с таблицами..." Указываем путь к файлу *.mdb, с которым хотим установить связь. Выбираем таблицу, с которой хотим установить связь. Готово. Но это слишком сложно для пользователей. Мне нужен программный способ установления связей между базами. |
12.01.2007, 12:48 | #6 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
интересно. схожие задачи.
динамически создаю таблицу. переписываю старые данные (только основные поля). но все в одной БД. до вашего решения сам не дошел. найду решение - обязательно скажу.
Берегите друг друга!
|
12.01.2007, 14:35 | #7 |
Регистрация: 10.01.2007
Сообщений: 5
|
Очень на это надеюсь.
Вроде я нащупал кое-что. 2 варианта В Delphi, закладка Servers - AccessApplication но у меня нет описания... или через CreateOleObject --------------------------- var AccessApp:Variant; ... AccessApp := CreateOleObject('Access.Application '); AccessApp.OpenCurrentDatabase('D:\M asterDB.mdb', false, ''); for i := 0 to AccessApp.CurrentDb.TableDefs.Count - 1 do if AccessApp.CurrentDb.TableDefs[i].Attributes = 1073741824 then //прилинкованная таблица begin tblName := AccessApp.CurrentDb.TableDefs.Item[i].Name; AccessApp.CurrentDb.TableDefs.Delet e(tblName); AccessApp.CurrentDb.CreateTableDef( tblName); AccessApp.CurrentDb.TableDefs.Item[i].Properties.Item['Connect'].value := '; DATABASE=D:\SecretDB.mdb'; AccessApp.CurrentDb.TableDefs.Item[i].Properties.Item['SourceTableName'].Value := tblName; // !!! Невозможно присвоить значение, если объект является частью семейства AccessApp.CurrentDb.TableDefs.Appen d(tblName); --------------------------- Но пока этот код выдает ошибки. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь между формами | KiberJo | Общие вопросы Delphi | 20 | 22.07.2008 21:40 |
Копирование файлов и каталогов перетаскиваением между двумя окнами | SANTA_KLAUD | Общие вопросы Delphi | 3 | 28.05.2008 21:52 |
Как программно через delphi создать папку на диске? | VenMaster | Общие вопросы Delphi | 5 | 25.05.2008 21:09 |
Связь Delphi с Access | Light | БД в Delphi | 7 | 14.04.2008 18:09 |
Надо в RichEdit Удалить все строки между двумя пустыми | Stas))) | Компоненты Delphi | 7 | 28.05.2007 16:49 |