|
Вопрос # 3 592/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Делаю телефонный справочник.
В базе 4-е таблицы:
- Группа
- Контакт
- Номера
- Тип номеров (справочник)
где "Номера" является подчиненной "Контакт", а "Контакт" подчинен "Группе".Используется 4-е элемента TTable, 4-е элемента TDataSet.
чтобы не использовать BDE, чтобы не привязываться к определенному пути использую Database(TDBTables).
При программном открытии таблиц у меня выходит ошибка "Circular datalinks are not allowed".
procedure TfMain.FormShow(Sender: TObject);
Var
BasePath : String;
Akt: String;
begin
BasePath := ExtractFilePath(Application.ExeName) + 'Data\';
fDM.DB.DatabaseName:= 'PhoneBook';
fDM.DB.DriverName:= 'STANDARD';
fDM.DB.Params.Clear;
fDM.DB.Params.Add('PATH='+ BasePath);
//Открытие таблиц
//Группа
fDM.TabGroup.Open;
//Контакт
fDM.TabKontakt.Open;
//Тип номеров
fDM.TabTypeNum.Open;
//Номера
fDM.TabNum.Open;
end;
Хотя, если использовать не виртуальную BDE (Database), все отрабатывает нормально. Как избавиться от этой ошибки?
 |
Вопрос задал: Чарик (статус: Посетитель)
Вопрос отправлен: 27 декабря 2009, 19:22
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 29 декабря 2009, 19:27; участников в обсуждении: 2.
|
Мережников Андрей (статус: Абитуриент), 27 декабря 2009, 19:40 [#1]:
Почемы Вы решили, что не используете BDE? С какой вкладки взяты компоненты, которые используете? Сообщение об ошибке гласит, что где-то среди компонентов установлена циклическая ссылка (возможно не одна), которые не поддерживаются.
|
|
Чарик (статус: Посетитель), 27 декабря 2009, 19:56 [#2]:
Я не говорю что не использую BDE. Наверное неправильно выразился. У меня используется виртуальная TDataBase, в коде- DB. Таблицы парадокс. необходим доступ к таблицам программно, не используя создание алиасов в BDE administrator , т.е. виртуально. Использую только ссылки подчинения
-Группа
|
---Контакт
|
---Номера
Сообщение выходит при попытке открытия таблицы 'контакт'.
P.S.
Если у таблиц выбираю существующую БД (databasename), и устанавливаю active в true ручками, все отрабатывает, а вот через код - ошибка...
|
|
Мережников Андрей (статус: Абитуриент), 28 декабря 2009, 05:36 [#3]:
Проверьте свойства params в режиме проектирования. Может быть там прописано еще что-то, кроме path, который устанавливается в процессе работы. А вообще можно не трогать params, а сделать так:fDM.DB.DatabaseName:=BasePath+'PhoneBook';
Вообще не мешало бы посмотреть свойства, которые установлены у компонентов на этапе проектирования.
|
|
Чарик (статус: Посетитель), 29 декабря 2009, 00:14 [#4]:
Мережников Андрей: если делаю так :
fDM.DB.DatabaseName:=BasePath+'PhoneBook';
то выходит ошибка: "неизвестная база данных"...
|
|
Чарик (статус: Посетитель), 29 декабря 2009, 19:27 [#6]:
Прописал в таблицах в DatabaseName альтернативный путь и все получилось. Спасибо всем за участие!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|