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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2010, 09:38   #1
insense
Пользователь
 
Регистрация: 22.10.2009
Сообщений: 27
По умолчанию

устанавилваю связь таким образом:
masterSourse -> adotable1
MasterField -> выбираю поле одной таблицы и поле второй таблицы
нажимаю Add и OK
тут же вылетает ошибка "аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфликт друг с другом"

размер и значения полей 2ух связывающих таблиц одинаковы
имена полей одинаковы

в чем проблема?

подскажите какие еще есть варианты установки связи...
по возможности приведите простенький пример кода запроса пжл
(либо в денвере либо в делфи)

структура:

есть таблица "roll" и таблица "container"
в таблице "roll" есть поле "BL Number"
в таблице "container" есть такое же поле "BL Number"
как мне связать две таб?

Последний раз редактировалось Stilet; 29.06.2010 в 15:35.
insense вне форума Ответить с цитированием
Старый 29.06.2010, 15:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
имена полей одинаковы
А типы одинаковы?
Кстати, по-моему эти поля должны быть обьявлены как ключевые, ну по крайней мере главное поле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2010, 15:46   #3
insense
Пользователь
 
Регистрация: 22.10.2009
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А типы одинаковы?
Кстати, по-моему эти поля должны быть обьявлены как ключевые, ну по крайней мере главное поле.
типы и размер одинаковы...
оба поля ключевые
insense вне форума Ответить с цитированием
Старый 29.06.2010, 17:59   #4
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

Код:
SELECT *
FROM [container] INNER JOIN roll ON container.[BL Number] = roll.[BL Number]
через sql будет выглядеть так.
почитайте какое соединения использовать (left join, right join и т.п). это зависит от конкретной задачи.
pobedin вне форума Ответить с цитированием
Старый 30.06.2010, 12:59   #5
insense
Пользователь
 
Регистрация: 22.10.2009
Сообщений: 27
По умолчанию

давайте по порядку:
есть таблица "roll" и таблица "container"
в таблице "roll" есть поле "BL Number"
в таблице "container" есть такое же поле "BL Number"

запрос будет выглядеть примерно так:
SELECT * FROM 'container' WHERE BL Number.container(поле таблицы container) = BL Number.roll (поле таблицы roll)

но как этот запрос выполнить в делфи с помощью adoquery не знаю

но похорошему он должен выводить все поля из таб container у которых совпадает поле BL Number с таким же полем таб roll

правильно?
insense вне форума Ответить с цитированием
Старый 30.06.2010, 13:31   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
запрос будет выглядеть примерно так
Код:
SELECT * FROM 'container' join roll on (container.BLNumber=roll.BLNumber
Только если честно ты определись где будешь связывать в запросе или через свойства Master-Detail компонентов. потому как это разные механизмы.

Master-Detail - удобен если на форму нужно вывести две таблицы, одна из которых перечитывает согласно текущей записи другой.
А запрос удобен в других ситуациях

какая у тебя?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2010, 14:04   #7
insense
Пользователь
 
Регистрация: 22.10.2009
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
SELECT * FROM 'container' join roll on (container.BLNumber=roll.BLNumber
Только если честно ты определись где будешь связывать в запросе или через свойства Master-Detail компонентов. потому как это разные механизмы.

Master-Detail - удобен если на форму нужно вывести две таблицы, одна из которых перечитывает согласно текущей записи другой.
А запрос удобен в других ситуациях

какая у тебя?
второй это вот этот ?
Цитата:
устанавилваю связь таким образом:
masterSourse -> adotable1
MasterField -> выбираю поле одной таблицы и поле второй таблицы
нажимаю Add и OK
тут же вылетает ошибка "аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфликт друг с другом"
откровенно говоря мне не важно каким способ связать, лишь бы связать
insense вне форума Ответить с цитированием
Старый 01.07.2010, 15:11   #8
insense
Пользователь
 
Регистрация: 22.10.2009
Сообщений: 27
По умолчанию

прошу,
напишите запрос с помощью query
и по полочкам как query настраивается
insense вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь между таблицами Hottabych БД в Delphi 2 15.11.2009 22:09
БД в DELPHI. Связи между таблицами. DENCREAT Помощь студентам 3 24.03.2009 10:55
Удаление связи между таблицами в Access sashaslam БД в Delphi 3 23.07.2008 09:44
Связи между таблицами! Alexij БД в Delphi 1 10.06.2008 18:11
Связь между таблицами Катрина БД в Delphi 3 17.05.2008 18:24