| 
| 
 | Вопрос # 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 альтернативный путь и все получилось. Спасибо всем за участие! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |