Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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, 18:04 [#5]:

PhoneBook - это не алиас?
Чарик

Чарик (статус: Посетитель), 29 декабря 2009, 19:27 [#6]:

Прописал в таблицах в DatabaseName альтернативный путь и все получилось. Спасибо всем за участие!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:32
Выполнено за 0.03 сек.