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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2009, 12:43   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Автоинкриментное и символьное поле. Связь

Как связать два поля из разных таблиц, если они имеют разные типы, а код менять нежелательно? В запросе пишу такую связь:
Код:
rezult.ID=chetverty.Chetvert
Поле ID имеет тип +, а поле Chetvert имеет тип А.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 12:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Автоматом помоему никак. Для реляции тип должен быть одинаковым.
Есть возможность поступить так:
При переходе по записям в главном наборе, переоткрывать связанный с ним по фильтру или по запросу типа:
Код:
Seletc * from rezult where ID='+chetverty.Chetvert;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 13:08   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А куда вставить этот запрос:
Код:
Seletc * from rezult where ID='+chetverty.Chetvert;
И что он значит вообще?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 13:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Seletc
Я очепятался - SELECT

Цитата:
А куда вставить этот запрос:
Допустим в OnAfterScroll твоего компонента для доступа к данным.
в свойство SQL компонента Query подчиненного набора.

Смысл ты понял али нет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 13:20   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Смысл ты понял али нет?
Чуть чуть понял
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 13:21   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Чуть чуть понял
Вот и попробуй реализовать, а если что подкорректируем...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 13:32   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Вот и попробуй реализовать,
Попробовал. Поместил Ваш код в свойство AfterScroll (кстати что значит это свойство?) компонента TQuery. При нажатии на кнопку выполнения запроса появляется ошибка: Type mismatch is expresion. Задолбала эта ошибка
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 13:40   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Поместил Ваш код в свойство AfterScroll
Код в студию
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 13:48   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
Код:
procedure TForm2.Query_ITOGAfterScroll(DataSet: TDataSet);
begin
 Form2.Query_ITOG.SQL.Clear;
 Form2.Query_ITOG.SQL.Text:='Select * from rezult,chetverty where rezult.ID= + chetverty.Chetvert';
 Form2.Query_ITOG.Open;
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 13:50   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Form2.Query_ITOG.SQL.Text:='Select * from rezult,chetverty where rezult.ID= + chetverty.Chetvert';
На те же грабли наступаешь )
Код:
 Form2.Query_ITOG.SQL.Text:='Select * from rezult,chetverty where rezult.ID='+chetverty.Chetvert;
chetverty.Chetvert это же у тебя база и поле так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47
Matlab. Перевести символьное значение в строку Kras Помощь студентам 2 24.04.2009 18:19
Связь FTP Ксеноцид Работа с сетью в Delphi 4 30.03.2008 04:23
Связь с БД Elena БД в Delphi 4 03.05.2007 16:08