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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2007, 11:22   #1
frai
Пользователь
 
Регистрация: 11.04.2007
Сообщений: 36
Печаль Выборка информации из 2 таблиц (SQL)

Здравствуйте програмисты.
Есть база на основе Accses.
Есть 2 таблицы Потерпевший и Потерпевший судимость. Они связаны между собой при помощи переменных (Link--> LinkKey). Эти переменые имеют числовое значение.
Нужно сделать поиск по фамилии так что бы в форме выводв результата поиска выводились не только данные из таблицы Потерпевший но и из привязанной к ней таблице Потерпевший судимость.
Я решил сделать это при помощи компонента Query. В значении Source установил таблицу Потерпевший.
Написал код:Select *
From Потерпевший, Потерпевший судимость
Where Link = LinkKey


При попытке установить значение Active у Query в положение True
компилятор выдает ошибку
"параметр Link не имет значения по умолчанию"

Что это может значить? уже 2 день голову ломаю
frai вне форума Ответить с цитированием
Старый 07.11.2007, 11:39   #2
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

Если я все правильно понял, то тебе достаточно делать выборку в одной таблице Потерпевий и все привязанные к ней записи из Потепевший Судимость будут.
Либо поподробней объясни как у тебя связь сделана
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Старый 07.11.2007, 12:12   #3
frai
Пользователь
 
Регистрация: 11.04.2007
Сообщений: 36
По умолчанию

Я тоже так думал. Сделал форму для вывода результата поиска.
Поместил туда поля DBEDIT для вывода инфы из первой таблицы Проставил им параметр Source( сюда ввел Query sourse) и установил имена полей которе они будут выводить.
Затем в низ формы я поместил DBGRIDE и опять же в Sourse укзал Query Source. Так в результате у меня в таблице (DBGRIDE) оказался дубликат информации из первой таблицы(((
frai вне форума Ответить с цитированием
Старый 07.11.2007, 12:25   #4
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

ТЕбе нужно Грид привязать к source той таблицы, которая привязана к основной
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Старый 07.11.2007, 12:34   #5
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

А у Вас так и называется таблица "Потерпевший судимость"? В смысле, в названии таблицы пробел присутствует?
фЁдОр вне форума Ответить с цитированием
Старый 07.11.2007, 13:29   #6
frai
Пользователь
 
Регистрация: 11.04.2007
Сообщений: 36
По умолчанию

Цитата:
Сообщение от фЁдОр Посмотреть сообщение
А у Вас так и называется таблица "Потерпевший судимость"? В смысле, в названии таблицы пробел присутствует?
Да пробел присутствует. А лучше без него? Кстати названия таблиц можно на руском делать или лучше латиницей?
frai вне форума Ответить с цитированием
Старый 07.11.2007, 13:33   #7
frai
Пользователь
 
Регистрация: 11.04.2007
Сообщений: 36
По умолчанию

Народ пожалуйста напишите для тупого как можно сделать выборку всей инфы из 2 связанных таблиц с учетом того что параметр по которому будет производится поиск (фамилия) находится в первой таблице. Я просто не знаю где какие Source выставлять ....
frai вне форума Ответить с цитированием
Старый 07.11.2007, 13:48   #8
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

На русском-то поля можно подписывать, а вот названия таблиц с пробелами (на своих ошибках научился) нельзя писать! Напишить лудьше Потерпевший_судимость. А что бы выбрать все поля из разных таблиц напишите тот же код
Код HTML:
Select *
From Потерпевший, Потерпевший_судимость
Where Link = LinkKey
только в свойстве SQL, компонента Query.

Последний раз редактировалось фЁдОр; 07.11.2007 в 14:09.
фЁдОр вне форума Ответить с цитированием
Старый 07.11.2007, 14:23   #9
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

Вообще лучше не использовать русскую кодировку
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Старый 07.11.2007, 14:24   #10
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

В другом SQL диалекте это выглядело бы так
SELECT S.*, P.* FROM SUDIMOST S
LEFT JOIN POTERP P ON P.POTERP_ID = S.POTERP_ID

Такой запрос выбирает все записи из таблицы SUDIMOST и привязывает к ним записи из таблицы POTERP по ключу POTERP_ID
POTERP_ID - первичный ключ в таблице POTERP, в таблице SUDIMOST есть такое же поле с таким же названием, по которому оно связано с POTERP (внешний ключ).

Не знаю поможет это тебе или нет...
Rik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADO, выборка из таблицы. Roof БД в Delphi 2 09.07.2008 18:51
Создание запроса, выборка из 4 таблиц! help! angelkisss SQL, базы данных 3 03.02.2008 15:03
Выборка из таблицы ivp88 БД в Delphi 5 12.01.2008 14:36
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43