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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2011, 15:31   #1
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию DBGrid-ы Проблема связки таблиц

Появилась непонятная проблема:

DBGrid1 - Выводит список Таблицы1(К примеру)

DbGrid2 - Выводит список Таблицы2 (Тоже к примеру)

Обе таблицы связаны ключами между собой на СКУЛЬ сервере:
У таблицы1 - Основной ключ , у Таблицы2 - второстепенный ключ(С привязкой полей - ID Таблицы2 к ID Таблицы1)

В делфи в ADO table1 - Выбрана Таблица1, в ADOTable2 Выбрана таблица2...также в ADOTable2.mastersource Указан Datasource1(Прикрепленный к ADOTAble1), соответственно проставлены основные ключи и второстепенные....

Это я к тому, что сделал здесь все как полагается....И при перемещении по записям DBGrid1 Переключаются записи в DBGrid2 - Ибо ключами все связано верно.

Далее у меня есть ADOQuery1 Который делает выборку из таблицы1
Код:
connection.ADOQuery2.Active:=false;
connection.ADOQuery2.SQL.Clear;

connection.ADOQuery2.SQL.Add('SELECT ID,NAPRIAGEN,NAIMPODSTOTKUDA,NOMPODSTOTKUDA,NAIMPODSTKUDA,NOMPODSTKUDA');
connection.ADOQuery2.SQL.Add('FROM NAPRAVLENIA');

connection.ADOQuery2.SQL.Add ('WHERE NAIMPODSTOTKUDA LIKE '''+ otkuda +'%'' AND NOMPODSTOTKUDA LIKE '''+ nomerotkuda +'%'' 
AND NAIMPODSTKUDA LIKE '''+ kuda +'%''AND NOMPODSTKUDA LIKE '''+ 
nomerkuda +'%'' OR NAIMPODSTOTKUDA LIKE '''+ kuda +'%''
AND NOMPODSTOTKUDA LIKE'''+ nomerkuda +'%'' AND NAIMPODSTKUDA LIKE '''+ otkuda +'%'' AND NOMPODSTKUDA LIKE '''+ nomerotkuda +'%''');

connection.ADOQuery2.Active:=true;

connection.DataSource1.DataSet:=connection.ADOQuery2;
Как видите - параметр Dataset Меняется!

И так про клюк - у меня есть dbnavigator - привязанный к DBGrid2(Таблице2) для добавления записей.....

И баг заключается в чем - если после выборки в DBGRID1 - остается несколько записей, и я по нажатию кнопки навигатора добавляю, или отменяю запись к таблице2, то все работет корректно и привязка по ключам есть....

НО ЕСЛИ ПОСЛЕ ВЫБОРКИ ОСТАЕТСЯ ОДНА ЗАПИСЬ В DBGRID1, И Я НАЖАТИЕМ КНОПКИ НАВИГАТОРА ДОБАВЛЯЮ ЗАПИСЬ В ТАБЛИЦУ2, то после добавления в DBGrid2 Мне выводится весь список записей.....и плевать он хотел на привязку по ключевому полю ID!

Приложу скрины чтобы было понтяней....(Поля ID - На скринах - вывел специально чтобы вы понял что я имею ввиду)
Изображения
Тип файла: jpg 1.JPG (194.3 Кб, 129 просмотров)
Тип файла: jpg 2.JPG (195.4 Кб, 133 просмотров)

Последний раз редактировалось NitroSki; 05.07.2011 в 15:43.
NitroSki вне форума Ответить с цитированием
Старый 05.07.2011, 16:46   #2
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

тут бы взглянуть на прогу в целом... Нужны исходники
Gulik вне форума Ответить с цитированием
Старый 05.07.2011, 16:53   #3
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

Ды я то исходники могу выложить....но они в СКУЛЮ к таблицам привязаны Дампы не буду же я делать
NitroSki вне форума Ответить с цитированием
Старый 07.07.2011, 09:26   #4
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

Самое интересное - что обнаружил этот же глюк в проектах других программистов!

Глюк в том что если в одной таблице связанной по ключевому полю с другой - нажать на добавление новой записи и потом отменить - теряется связка таблиц....и выводится весь список записей.....но все становится нормально если в первой таблице переключиться с одной записи на другую! во второй таблице связь снова работает..... Вообщем не пойму - глюк в дельфе что ли? у меня 7Я стоит...СТРАНнннНА!!!!!

Если бы у меня у одного такая фича была я бы понял что у меня кривые руки....а теперь даже не знаю че и думать

Кто сталкивался - подскажите пожалста
NitroSki вне форума Ответить с цитированием
Старый 08.07.2011, 12:00   #5
NitroSki
Давно не
Пользователь
 
Аватар для NitroSki
 
Регистрация: 19.05.2011
Сообщений: 58
По умолчанию

УРА!!!!!!!!!!!!!!!!! ПОСЛЕ 4Х ДНЕЙ ТАНЦЕВ С БУБНОМ Я РЕШИЛ ТАКИ ПРОБЛЕМУ НО УЧИТЫВАЯ ЧТО КРОМЕ ОДНОГО ЧЕЛОВЕКА НИКТО БОЛЬШЕ НЕ ОТВЕТИЛ, ТО СКАЖУ КАК Я УСТРАНИЛ ПРОБЛЕМУ И В ЧЕМ ОНА БЫЛА - ТОЛЬКО ЕСЛИ ЭТО БУДЕТ КОМУ ТО ИНТЕРЕСНО......ТАК ЧТО ПИШИТЕ В ТЕМУ ЕСЛИ ИНТЕРЕСНО..Я. ОТВЕЧУ
NitroSki вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление данных из двух таблиц в DBGrid AJlEKCA БД в Delphi 2 09.01.2011 14:31
размещение в DBGrid данных из разных таблиц KaimNotark БД в Delphi 4 29.01.2010 04:24
php + mysql проблема связки Garacio_cain Софт 8 30.11.2009 10:27
Соединение 3 и более таблиц DBGrid Elena_Saygina БД в Delphi 26 08.11.2009 21:40
несколько таблиц в одном DBGrid DaemonSAT БД в Delphi 3 06.07.2008 13:27