Circular datalinks are not allowed ошибка

pavel_kr

1

04.01.2010, 17:07. Показов 7848. Ответов 4


Студворк — интернет-сервис помощи студентам

В Borland C++6
строка
Form1->DataSource1->DataSet = Form1->Query1;
вызывает ошибку:
Project Project2.exe raised exeption class EDatabase Error with message ‘DataSource1: Circular datalinks are
not allowed’. Process stopped…

Заранее спасибо.

Миниатюры

Circular datalinks are not allowed
 

Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

04.01.2010, 17:07

4

99 / 99 / 19

Регистрация: 29.12.2009

Сообщений: 204

04.01.2010, 17:11

2

м.б. Form1->Query1->DataSource указан Form1->DataSource1? так делать не надо



0



pavel_kr

04.01.2010, 18:13

3

А как надо? Это код из книжки.

99 / 99 / 19

Регистрация: 29.12.2009

Сообщений: 204

04.01.2010, 18:35

4

приведи весь код, посмотрим, что там не так, и как надо



0



0 / 0 / 0

Регистрация: 22.06.2015

Сообщений: 1

22.06.2015, 16:36

5

Цитата
Сообщение от pavel_kr
Посмотреть сообщение

В Borland C++6
строка
Form1->DataSource1->DataSet = Form1->Query1;
вызывает ошибку:
Project Project2.exe raised exeption class EDatabase Error with message ‘DataSource1: Circular datalinks are
not allowed’. Process stopped…

Заранее спасибо.

Выбери Query1 (в «обжект инспекторе» или на форме) и найди в его свойствах DataSource, там должно быть пусто. Если там записано DataSource1, то возникает ошибка.



0



 
Kostafey ©
 
(2007-04-04 22:23)
[0]

Выдает при изменении ширины поля в сетке (runtime).

Если сетку заново сделать — бесполезно.
ADODataSet новый сделать внутри DataModule — то же самое.
ADODataSet новый сделать на той же форме где и сетка — все работает хорошо.

2 часа разбираюсь не могу понять почему так?


 
LA33
 
(2007-04-04 22:25)
[1]

У сети какая ячея?


 
LA33
 
(2007-04-04 22:25)
[2]

Интерисует размер, подозреваю, что сороковка…


 
Kostafey ©
 
(2007-04-04 22:29)
[3]

Ячейки разные. В среднем около 20.


 
LA33
 
(2007-04-04 22:34)
[4]

Kostafey ©   (04.04.07 22:29) [3]

У рыбнадзора справки все взял? А то там в разные периоды, разные проблемы могут быть.


 
Kostafey ©
 
(2007-04-04 22:34)
[5]

Вообще история болезни такая.
Сначала понаделал для сетки колонок с привязками к полям датасета.
(это для того, чтобы задать DisplayLabel и DisplayWidth)
Потом думаю, зачем ерундой заниматься. Сделал у датасета TXXXFields
для всех полей таблицы. И в инх уже и задавал DisplayLabel и DisplayWidth.
А в сетке все колонки удалил.
Вот с тех пор и пошли такие ошибки как пытаешься иземнить ширину колонки.

Я даже не поленился все то же самое в том же порядке проделать для пустого проекта
с нуля — не возникает такой ошибки…


 
Kostafey ©
 
(2007-04-04 22:37)
[6]

Добавляю в сетку колонки — ошибка исчезает.
Правда мне это колонки нужны сейчас как летом валенки.

Вот еще что смешно: делаю в в этом же основном проекте новую форму
на ней сетку. Сеткой подключаюсь к дому же датасету — та же самя ошибка
WTF!


 
LA33
 
(2007-04-04 22:38)
[7]

:))


 
Kostafey ©
 
(2007-04-04 22:38)
[8]

> [2] LA33   (04.04.07 22:25)

Ну что вы с сеткой возитесь.
Удочкой слабо чтоль?


 
LA33
 
(2007-04-04 22:41)
[9]

Что за сетка? какие колонки? какая рыба? какая музыка?
Вы сами себе на уме (видимо творческий захлеб). Ну хоть, какой компонент эта сетка, скажите :)))


 
Kostafey ©
 
(2007-04-04 22:47)
[10]

> [9] LA33   (04.04.07 22:41)

:))))))))))))))))))))
Мде есть маленько с 11 часов за компом.

Сетка это TDBGrid.
Колонки это TColumn.


 
LA33
 
(2007-04-04 22:53)
[11]

Kostafey ©   (04.04.07 22:47) [10]
> [9] LA33   (04.04.07 22:41)
:))))))))))))))))))))
Мде есть маленько с 11 часов за компом.
Сетка это TDBGrid.
Колонки это TColumn.

Я с 1-часа ночи, сегодня, релиз выпускали, часов в 21 выпустили, пивко попиваем. Про TDBGrid ничего не скажу, т.к. использую DevExpress`овские компоненты.

А вот про сеть не сдержался :))

PS: я не оффтопил(offtop), я упал(up).
:)


 
Kostafey ©
 
(2007-04-04 22:56)
[12]

Не я просто что думаю.
Где корень всех зол зарыт ?
В DataModule. Не иначе.


 
Kostafey ©
 
(2007-04-04 22:59)
[13]

Ладно. Пойду модуль данных убивать.


 
Johnmen ©
 
(2007-04-04 23:18)
[14]


> Где корень всех зол зарыт ?

Как обычно, в 17 строке.
Ибо образовалась закольцованная ссылка в компоненте набора данных.


 
Kostafey ©
 
(2007-04-04 23:28)
[15]

> Как обычно, в 17 строке.

просто интересно, а от куда это пошло про 17-ю строку


> Ибо образовалась закольцованная ссылка в компоненте набора
> данных.

Нет там никакой закольцованности.
В наборе данных простая таблица.
Сделал модуль данных с нуля (не весь, а только необходимую его часть).
Поднял из архива ту версию формы, где я еще колонки не добавлял.
Компилирую — та же самая ошибка !!!

Ну что за плин.

Так и придется оставлять эти самые чертовы колонки.


 
Johnmen ©
 
(2007-04-04 23:53)
[16]


> Нет там никакой закольцованности.

Есть. О чём и говорит Circular datalinks are not allowed.
Т.е. один НД ссылается на второй, а второй на первый.
Или одно поле ссылается на другое в том же НД.


 
Kostafey ©
 
(2007-04-05 01:18)
[17]

> [16] Johnmen ©   (04.04.07 23:53)

Говорю ведь. Удалил я модуль данных. Вообще удалил.
Новый сделал.
Кинул на него набор данных (ADODataSet) тот из которого указанная сетка данные берет.
Набор данных — суть таблица. Даже Lookup-полей нет. Просто 1 таблица из БД.
С ним DataSource связал, его с сеткой.

Результат тот же.
Если размеры колонок в сетке начать мышкой двигать — ошибка вылетает.

Делаю тот же самый датасет, но уже в самой форме с сеткой — все ОК!

Логики в этой ошибке я вообще никакой не вижу…


 
Kostafey ©
 
(2007-04-05 01:44)
[18]

Вот еще одну интересную вешь заметил.
Если удалить из проекта один из модулей с формой (не удалить файл, а просто исключить из проекта),
то ошибка исчезает.
Подключаю снова — ошибка возвращается.

Этот модуть содержит DBEdit подключенный к LookUp-полю другого датасета, который берет данные в том числе
и из того DataSourse, из которого берет данные сетка, в которой возникает ошибка.

Но если удалить это LookUp-поле, DBEdit формы, то ничего не изменится. Ошибка остается.

Но опять никакой логики. Нет никакого кругового подключения. Просто один НД берет данные из другого и все.


 
Kostafey ©
 
(2007-04-05 02:06)
[19]


СОХРАНЯЙТЕ В ОРЕШНИКЕ, ГДЕ ХОТИТЕ ЭТО ПРОСТО ЧУДО.

Суть вот в чем. В совершенно другой форме (не в той в которой происходила ошибка)
я кинул компонентик TLookupComboBox, начал настраивать, да и бросил, недоделав, не в нем
суть задачи. Оказывается в нем я по ошибке ListSource и DataSource настроил на один
и тот же DataSource! И именно на этот DataSource ссылалась и та сетка, в которой
происходила причина моей бессоницы.

Вроде глупость, а потерял уйму времени…

Да, и все же почему именно на 17-й строчке ? ;)))


 
Desdechado ©
 
(2007-04-05 11:48)
[20]

> в нем я по ошибке ListSource и DataSource настроил на один и тот же DataSource!
О чем тебе в ошибке и сообщалось.

> почему именно на 17-й строчке ?
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1; // вот она, 17-я, здесь начинается код!



Форум программистов Vingrad

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> не пойму запрос с параметром, делаю запрос с параметром 

:(

   

Опции темы

snakesnight
  Дата 13.6.2009, 15:32 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 13.6.2009

Репутация: нет
Всего: нет

Просьба помочь!!!!
Есть база данных. К ней в Delphi сделал оболочку, подключил все как водится (не первый раз делаю).
Для проверки в Ibexperte сделал запрос с параметрами, все работает….
Кидаю на форму в Delphi IBQuery, database настраиваю, кидаю datasource, ставлю в свойствах IBQuery, кидаю grid, ставлю в свойствах datasourse…..и вроде бы все должно работать….
Копирую из Ibexpert’а текст запроса, вставляю его в IBQuery.SQL, прописываю имена и типы в Params, присваиваю им значения, и ставлю свойство active в truу……………………….
Вылезает ошибка Circular datalinks are not allowed….
Хотя если убрать из запроса параметры все работает на ура, но мне нужно делать динамические запросы, так что параметры необходимо оставить, а если их оставить опять идет ошибка «Circular datalinks are not allowed»
В чем дело? Подскажите плиз…… всю голову сломал.. smile 
В Ibexperte запрос  с параметрами работает!!!!!
А в Delphi работает только без параметров :(
P.S. Свойство IBQuery.paramcheck в active 

PM MAIL   Вверх
vovk
Дата 13.6.2009, 15:35 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6

а может пекажете как вы делаете от добавления текста запрроса до его открытия?

PM MAIL   Вверх
snakesnight
Дата 13.6.2009, 15:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 13.6.2009

Репутация: нет
Всего: нет

если писать кодом тогда:

Qbuery1.active:= false;
Qbuery1.SQL.Add(‘сдесь запрос с параметрами’);
Qbuery1.active :=true;

если я конечно понял вопрос?!?

PM MAIL   Вверх
vovk
Дата 13.6.2009, 16:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6

а параметрам то вы где значение присваиваете? этож надо отькрытия запроса делать? Или всё засекречено?

Это сообщение отредактировал(а) vovk — 13.6.2009, 16:37

PM MAIL   Вверх
snakesnight
Дата 13.6.2009, 16:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 13.6.2009

Репутация: нет
Всего: нет

дак прямо в диспетчере объектов в IBQuery 

там есть вкладка value при выборе имени параметра, вот там и задаю….

пробовал задавать в коде:

IbQuery1.params[0].value:=’  ‘; и так IbQuery1.parambyname(‘name_param’).asstring:= ‘ ‘;

все равно ошибка таже самая

PM MAIL   Вверх
vovk
Дата 13.6.2009, 16:47 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6

попробуйте совместить всё в коде тобиш

Код

IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IQbuery1.active :=true;

+

Код

IbQuery1.parambyname('name_param').asstring:= ' ';

чтоб вышло так

Код

IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IbQuery1.parambyname('name_param').asstring:= ' ';
IQbuery1.active :=true;

раз запрос и параметры засекречены, думаю в запросе всё верно? перед параметрами : и тп, запрос то вообще проверяли если место параметров поставить значения сразу, работает?

Это сообщение отредактировал(а) vovk — 13.6.2009, 16:50

PM MAIL   Вверх
snakesnight
Дата 13.6.2009, 16:53 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 13.6.2009

Репутация: нет
Всего: нет

Код

IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IbQuery1.parambyname('name_param').asstring:= ' ';
IQbuery1.active :=true;

так я уже далал, толку никакого, я и сам понять не могу вроде все делаю как надо, все таки не первый год этими вещами занимаюсь, и первый раз такая ошибка…..пишу в CodeGear Delphi 2009 может с этим что связано?

Есть идеи что еще может быть не так???

PM MAIL   Вверх
vovk
Дата 13.6.2009, 17:05 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6

к сожалению о CodeGear Delphi 2009 могу сказать только одно слово NET, хотя думаю вряд ли, но не уверен.  Извените дальше я ничего сказать не могу. Был бы запрос хоть схематически показан может быть смог бы помоч.

PM MAIL   Вверх
snakesnight
Дата 13.6.2009, 17:07 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 13.6.2009

Репутация: нет
Всего: нет

там просто запрос большой….очень….
ну ладно..и на том спасибо…буду снова ломать голову smile

PM MAIL   Вверх
Romikgy
Дата 13.6.2009, 23:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Любитель-программер
****

Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146

### а буфер обмена зачем тогда?

———————

Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.

smile

PM   Вверх
flomaster
Дата 16.6.2009, 23:01 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.12.2007
Где: СПб

Репутация: нет
Всего: нет

Что за дебилизм, задавая вопрос, устривать соревнования телепатов.
Нужен ответ, так опиши проблему внятно и полностью.
Или растянешь на сотню страниц просьбы «покажи свой код» от желающих помочь.

Циклическая ссылка, значит где-то ссылается на само себя.

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Delphi: Базы данных и репортинг»
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

Avatar of frdep

Hi,
What is a «circular datalink» ?
I have two tables, one master and one detail.
Table1 —> DataSource1
Table2 with MasterSource set to Datasource1.
When I Table1.Open,  I have an error message «Circular datalinks are not allowed».  
If Table2.MasterSource is nil, and in Table1.AfterOpen I set the Table2.MasterSource, it is ok.
What is happening ????
Thanks

Delphi

Avatar of undefined

In your setup Table1 must be the Master table.
Have u set the linking master field

On the detail table’s object inspector goto masterfields and click on the dots. Then select the field that appears in both tables and click add.

That should do it

Yes, the fields are correctly set.  And it do not work.
It working only if in Table1.AfterOpen I set the Table2.MasterSource

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.

View this solution by signing up for a free trial.

Members can start a

7-Day free trial

and enjoy unlimited access to the platform.

you may have defined a lookupfield,
which causes the error

meikl ;-)I

I did delete  tables and datasource, and re-install it.  Now it is working !!!!
Thanks

INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Thanks. We have received your request and will respond promptly.

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!

  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It’s Free!

*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Circular Datalinks are not allowed

Circular Datalinks are not allowed

(OP)

2 Feb 10 00:38

Can someone help me?

I’m getting the error ‘Circular Datalinks are not allowed’ and I cannot find using de debug mode (F7) were to find the error.

Is there an function in Delphi to figure out where I have make a mistake?

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Join Tek-Tips® Today!

Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.

Here’s Why Members Love Tek-Tips Forums:

  • Tek-Tips ForumsTalk To Other Members
  • Notification Of Responses To Questions
  • Favorite Forums One Click Access
  • Keyword Search Of All Posts, And More…

Register now while it’s still free!

Already a member? Close this window and log in.

Join Us             Close

  • Cinema 4d ошибка афтер эффект
  • Cinema 4d ошибка libmmd dll
  • Cinema 4d prorender неизвестная внутренняя ошибка
  • Cin не является однозначным ошибка c
  • Cicerouiwndframe avpui exe ошибка приложения