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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2009, 13:59   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
На те же грабли наступаешь )
Видимо я дурак, если наступаю на одни и теже грабли )
Если я пишу это
Код:
Form2.Query_ITOG.SQL.Text:='Select * from rezult,chetverty where rezult.ID='+chetverty.Chetvert;
То прога не компилится и выводится сообщение об ошибке, что [Error] Unit2.pas(2827): Undeclared identifier: 'chetverty'.
Цитата:
chetverty.Chetvert это же у тебя база и поле так?
Так)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 14:15   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Фух..
Вот смотри Есть у тебя Query_ITOG - главная.
А есть допустим Query_chetverty - подчиненная
Тогда смотри внимательно:
Код:
procedure TForm2.Query_ITOGAfterScroll(DataSet: TDataSet);
begin
 Form2.Query_chetverty.SQL.Clear;
 Form2.Query_chetverty.SQL.Text:='Select * from rezult where rezult.ID='+DataSet.fieldByName('Chetvert').AsString;
 Form2.Query_chetverty.Open;
end;
Так ясно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 17:12   #13
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='+Table4.DataSource.DataSet.FieldByName('Chetvert').AsString;
 Form2.Query_ITOG.Open;
end;
Table4 - это таблица, на который настроен DaraSource4, а на DataSource4 настроен Query_ITOG. В таблице rezult у меня есть lookup-поле Chetvert и в таблице есть поле Chetvert. А при нажатии на кнопку выводится ошибка, что типа в Table1 нет поля Chetvert. Его там и не должно быть, поэтому нет. Вообщем, запрос не работает. Может еще что-нибудь можно сделать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 18:37   #14
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

AfterScroll наступает сразу после перемещения на новую запись.
У тебя это событие вызывается по перемещениям по Query_ITOG, и сойства меняются тоже в томже Query_ITOG.
Судя по всему тебе надо так

Код:
procedure TForm2.Table4AfterScroll(DataSet: TDataSet);
begin
Form2.Query_ITOG.SQL.Clear;
 Form2.Query_ITOG.SQL.Text:='Select * from rezult where rezult.ID='+Table4.FieldByName('Chetvert').AsString;
 Form2.Query_ITOG.Open;
end;
в таком случае,
при перемещении по записям в Table4,
в Query_ITOG будут выбиратся записи из таблицы Rezult в которых поле
ID= содержимому текущей записи поля Chetvert,
той таблицы которая находится в Table4
вот примерно так

и у Query_ITOG свойство Datasource обнули

Последний раз редактировалось vovk; 01.07.2009 в 18:40.
vovk вне форума Ответить с цитированием
Старый 01.07.2009, 19:35   #15
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Попробовал Ваш код, Vovk. Выдает ошибку:
"Invalid use of keyword.
Token: =
Line Number: 1"
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 19:46   #16
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

поставь ещё кнопку на форму и мемо, на кнопку напиши

Код:
Memo1.text:=Form2.Query_ITOG.SQL.Text;
и после того как ошибку выдаст нажми на кнопку..

хотелось бы содержимпе мемо увидеть..
ведь я правильно понял то что выше постом написано под кодом.. это надо?
хотя в общем то странно.. ведь запись может быть только 1 в таком случае..
логичнее было бы её использовать как параметр для отбора..
vovk вне форума Ответить с цитированием
Старый 01.07.2009, 19:51   #17
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вот, в Memo выволится это:
Код:
Select * from rezult where rezult.ID=
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2009, 20:04   #18
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

получается что в текущей записи Table4 содержимое поля Chetvert =''

А может мы неправильно всё поняли? Можно по подробнее что значит связать? То.е. по каким вашим действиям, что должно происходить?

Чтото вроде нажал сюда, такаята запись попала туда, или тото отабразилось тамто. а то чес слово 2 раза топик перечитал всё равно запутался, такое ощущение что разговор просто о разных вещах идёт.

Последний раз редактировалось vovk; 01.07.2009 в 20:09.
vovk вне форума Ответить с цитированием
Старый 02.07.2009, 03:46   #19
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Ну хорошо:-). Попробую истолковать). Есть две таблицы: rezult и chetverty. Мне нужно связать их по полям ID и Chetvert. В таблице rezult Есть лукап поле с названиями четвертей. То Есть для внесенной записи, четверть выбирается из списка. Эта связь мне нужна для более точного поиска по базе. Вся проблема в том, что поля имеют разный тип.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.07.2009, 04:02   #20
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

так уточняю в таблице rezult есть автоинкрементное поле Id , которое нас совершенно не касается так?
там же есть поле с неизвестным названием в котором содержатся названия четвертей , которые есть в таблице chetverty в поле chetvert так?
вы бы может скинули таблички эти 2 с небольшим количеством данных чтоб понять что где находится? А то я понимаю что можно было в таблице результ в это неизвестное поле , добавлять как внешний ключь данные из поля ID таблицы chetverty, это мне понятно было бы, тогда у нас была бы в записях ссылка на данные из таблицы четверти, на определённую запись. судя по названию в таблице результ может быть несколько записей связанных с 1 записью в таблице chetverty или я вобще ничего не понимаю..
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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