Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.05.2010, 23:48
J-10 J-10 вне форума
Прохожий
 
Регистрация: 16.05.2010
Сообщения: 3
Репутация: 10
Печаль Использование ADO в D7

Есть 5 таблиц (MS SQL Server 2008) - Заказчики, заказы, товары, поставки и поставщики. Ставлю по 5 компонентов TADOTable и TDataSource. Дальше, как я понимаю, необходимо связать эти таблицы, делается это через поля MasterSource и MasterFields, и вот тут возникает проблема - таблица "Товары" должна быть связана с таблицами "Заказы" и "Поставки", но поле в MasterSource позволяет ввести имя только одного DataSource.

Мб кто нибудь знает, как можно решить эту проблему?
Ответить с цитированием
  #2  
Старый 17.05.2010, 08:35
Opsidon Opsidon вне форума
Прохожий
 
Регистрация: 17.05.2010
Сообщения: 7
Репутация: 12
По умолчанию Re

Делай на оборот....связывай "Заказы" и "Поставки", с таблицей Товары!
Ответить с цитированием
  #3  
Старый 17.05.2010, 10:11
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Что-то вы не то делаете. Скиньте картинку схемы данных из MSSQL
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 17.05.2010, 12:12
J-10 J-10 вне форума
Прохожий
 
Регистрация: 16.05.2010
Сообщения: 3
Репутация: 10
По умолчанию

Да, мне тоже кажется, что нужно связывать "Заказы" и "Поставки" с "Товарами", но в этом случае Delphi выдает ошибку:





Вот диаграмма базы данных из SQL Server'а:



Если же связываешь "Товары" с "Заказами" или "Поставками" ошибок не возникает.
Ответить с цитированием
  #5  
Старый 17.05.2010, 12:21
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

по моему в d7 есть ограничение на связи, три таблицы не могут быть связаны, а только две, одновременно.
__________________
Arrrgh
Ответить с цитированием
  #6  
Старый 17.05.2010, 13:37
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вы что-то не так делаете в Дельфи. Должно быть так:
Товары.Идентификатор->Поставки.ИдентификаторТовара
Товары.Идентификатор->Заказы.ИдентификаторТовара

Если вы все делаете согласно схеме MSSQL то все прекрасно будет работать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 17.05.2010, 20:09
J-10 J-10 вне форума
Прохожий
 
Регистрация: 16.05.2010
Сообщения: 3
Репутация: 10
По умолчанию

Нашел решение.

Необходимо было делать связи от таблиц "Поставки" и "Заказы" к таблице "Товары", но тут вылезала ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом". При этом если делать связи в обратную сторону, т.е. от таблицы "Товары" к таблицам "Поставки"/"Заказы", то ошибки не возникает... почему - не знаю.)

Ну да ладно, проблема в том, что атрибуты имеют русские названия. Как ее решать:

1. Ставим поля таблиц "Active" в состояние "False"
2. Выбираем необходимые нам MasterSource и MasterFields
3. Дальше автор предлагает полностью удалить поле IndexFieldNames, меня это таки смущает, я выбрал другой способ - заключить его содержимое в квадратные скобки, т.е. если было "Идентификатор товара", то стало "[Идентификатор товара]"
4. Ставим поле "Active" в состояние "True"
5. Пляшем.)

Откуда спер:
http://www.delphikingdom.com/asp/ans...IDAnswer=50972

Автор:
Selya

Если баян - то я не виноват.)
Ответить с цитированием
  #8  
Старый 17.05.2010, 21:28
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Я ведь не зря Вас сразу просил показать схему в MSSQL. Если бы вы внимательно посмотрели, то увидели-бы что все составняе поля в ней взяты в квадратные скобки, и правильное направление связи указано символами ключик и бесконечность, что означает один ко многим.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025