С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
1

Создать расчётное поле в запросе adoquery

10.02.2016, 19:48. Показов 753. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть MSAccess, adoquery, запрос и dbgrid.
Нужно что бы запрос отображал значение двух полей из запроса в одном.
Я попробовал сделать расчётное поле в самом аксесе и отобразить его в запросе, но в гриде отображает "WIDEMEMO)".
Хотя в самой субд написано, что тип данных у поля "Короткий текст".
Погуглил на эту тему и нашёл:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm7.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Assigned(Column) then
  begin
   DBGrid1.Canvas.FillRect(Rect);
   DBGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, ' '+Column.Field.AsString);
  end;
end;
Тогда если на поле в дбгриде не кликать, то отображается всё как надо. Но в выделенном состоянии запись двоится и видно "WIDEMEMO)". Выглядит это ужасно.

Я вижу два варианта, как сделать приблизительно то, что мне нужно. Объединить поле "Наименование группы" и "курс" в одно поле или создать просто еще одно поле и извращаться, заполнять его в цикле перед тем как отобразить. Или попытаться использовать стринггрид, но я им никогда не пользовался.
Как же всё таки это реализовать ?)
З.Ы. Возможности покупать компоненты не имею, так как это просто курсовая.
Миниатюры
Создать расчётное поле в запросе adoquery  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2016, 19:48
Ответы с готовыми решениями:

Пробел в запросе AdoQuery
Здравствуйте! При работе в командной строке MySQL осуществляю запрос: Select 'Order number' from...

Дата в запросе adoquery
Привет форумчане, у меня вопрос: есть 2 MounthCalendar нужно организовать запрос типо от выбранной...

Код в запросе SQL, ADOQuery
Есть ли возможность в код SQL добавить Edit, чтобы делать запрос? Для примера...

Ошибка в SQL запросе ADOQuery
fDM.qReport1.SQL.Add('SELECT a.Наименование_изделия,a.Код_изделия,a.Код_цеха,'); ...

6
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
10.02.2016, 19:52 2
или напишите запрос в котором объедините эти столбцы
или обычный запрос, но при выводе объединить столбцы в один (но придется использовать StringGrid)
0
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
10.02.2016, 19:58  [ТС] 3
qwertehok, А как будет выглядеть такой запрос? И для того что бы объединить поля, необходимо создавать новое поле заранее?
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
10.02.2016, 20:15 4
Цитата Сообщение от maybeTM Посмотреть сообщение
А как будет выглядеть такой запрос?
если написать вот так, то вроде поля должны объединиться в самом запросе
SQL
1
SELECT a &" "& b
а если так
SQL
1
SELECT a,b FROM TABLE
то их можно будет объединить в момент обработки
1
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
10.02.2016, 20:31  [ТС] 5
qwertehok, Спасибо огромное, первый вариант то что нужно.

Добавлено через 7 минут
qwertehok, а нет, я пошутил. В аксесе запрос работает нормально а в делфи выдаёт "(WIDEMEMO)".
А второй вариант не очень понял как использовать, этот запрос же просто поля выдаёт.
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
10.02.2016, 20:52 6
Цитата Сообщение от maybeTM Посмотреть сообщение
а в делфи выдаёт "(WIDEMEMO)".
эта ошибка как-то решается, поищите в инете (я давно отошел от аксесса)

Цитата Сообщение от maybeTM Посмотреть сообщение
А второй вариант не очень понял как использовать, этот запрос же просто поля выдаёт.
я обычно вывожу так
query.fields[0].asstring+''+query.fields[1].asstring

эта конструкция объединяет поля в постобработке
0
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
10.02.2016, 21:21  [ТС] 7
сколько читаю, везде ругаются на размеры полей, но я размеры у полей везде явно указал, даже не представляю почему так)
На сколько я понял, объединённые поля преобразуются в формат длинного текста и из-за этого грид их не может отобразить..
0
10.02.2016, 21:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2016, 21:21
Помогаю со студенческими работами здесь

Формат даты в SQL-запросе (компонент ADOQuery)
Помогите разобраться! Есть таблица в Access, одно из полей которой имеет тип "дата". Как сделать...

Ошибка при двойной выборке в sql запросе adoquery
В var задаю переменные x3,x4 string и a3,a4 integer; x3:=edit4.text; a3:=strtoint(x3);...

Нужна с вычисляемым поле в ADOQuery
Здравствуйте, народ! Не могу составить код для св-ва SQL в ADOQuery. Нужно, чтобы rabochie из...

ADOQuery программно добавить поле
Привет, как можно программно добавить поле в ADOQuery к уже существующим ? чтоб указать тип...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru