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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2017, 20:18   #1
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию Вывод имени вместо ID

Есть две таблицы Pokupatel c полями id, fio и Pokupka с полями idPokupatel и дата. Сделал на MS SQL, первичные и внешние ключи расставлены, и созданы связи посредством SQL Server Managment.

Теперь нужно вывести в dbgrid таблицу Pokupka но вместо поле idPokupatel нужно вывести пользователя у которого номер равен idPokupatel в таблице Pokupatel, то есть fio. У меня связь сделано ADOConnection - AOQuery - DataSource. C свойстве AOQuery пишу следующий запрос
Код:
select Pokupatel.fio, Pokupka.Data
from Pokupka
left join Pokupatel on Pokupka.idPokupatel=Pokupatel.id
Вроде должна вывести имя пользователя вместо числового id, но этого не происходит, в чем дело?
goto ∞ вне форума Ответить с цитированием
Старый 12.09.2017, 21:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А что происходит?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.09.2017, 22:29   #3
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что происходит?
В DBgrid выводит только дату, а поле idPokupatel пустой.
Вот скрин
http://programmersforum.ru/attachmen...1&d=1505244315

Если выполнить точно такой же sql запрос внутри SQL Server managment то все выполняется отлично.
http://programmersforum.ru/attachmen...1&d=1505244437

Скорее всего тут проблема в самом Дельфи, или я что то не так правильно соединил, хотя запрос вида select * from tabl работает.
Изображения
Тип файла: jpg 1.jpg (37.4 Кб, 229 просмотров)
Тип файла: jpg 2.jpg (27.9 Кб, 156 просмотров)
goto ∞ вне форума Ответить с цитированием
Старый 12.09.2017, 22:50   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от goto ∞ Посмотреть сообщение
или я что то не так правильно соединил
Походу вот это верно. Запрашиваете ФИО, а вывести пытаетесь ИД
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.09.2017, 23:02   #5
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Походу вот это верно. Запрашиваете ФИО, а вывести пытаетесь ИД
как тогда должен выглядит запрос?
goto ∞ вне форума Ответить с цитированием
Старый 13.09.2017, 05:16   #6
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

запрос правильный, сам грид перетряхните он запомнил id
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 13.09.2017, 08:48   #7
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
запрос правильный, сам грид перетряхните он запомнил id
Да ты просто бог
Удалил и заново поставил компонент DBGrid. Не знал что делфи на такое способен )
goto ∞ вне форума Ответить с цитированием
Старый 13.09.2017, 08:54   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Не знал что делфи на такое способен
сам же небось колонки создал в гриде. а делфи не способен ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 13.09.2017 в 08:58.
Аватар вне форума Ответить с цитированием
Старый 13.09.2017, 08:58   #9
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
сам же небось колонки создал в нем. а делфи не способен ))
Вроде dbgride динамический создает в зависимости сколько колонок в таблице, ну я и не трогал её так то )
goto ∞ вне форума Ответить с цитированием
Старый 13.09.2017, 09:16   #10
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Оказывается если делфи приложение связано с таблицами путем ADOConnection - AOQuery - DataSource, то перед изменением SQL запроса в компоненте AOQuery, нужно свойство этого компонента Active сделать false, потом изменить SQL запрос и поставить в true, иначе будет глюки как у меня.Может кому то из новичков поможет
goto ∞ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод названия вместо ID mimimishka БД в Delphi 2 03.06.2017 01:49
вывод в див имен из бд и при нажатии вывод в отдельный див дополнительной информации об этом имени / PHP и базы данных looni123 JavaScript, Ajax 3 03.04.2014 21:26
Вывод пустых ячеек вместо 0000-00-00 bizarre86 PHP 5 15.04.2013 06:29
как вставить значение переменной в формулу ActiveCell.FormulaR1C1 = "=SUM(Лист1:Лист3!RC)" вместо имени листов. vneizvecnocty Microsoft Office Excel 3 25.03.2012 19:01