|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.11.2017, 18:17 | #1 |
Регистрация: 28.11.2017
Сообщений: 9
|
Delphi sql avg
Приветствую! В бд access лежит таблица с полем mark, по которому нужно посчитать среднее значение
Вот код: ADOQuery1.Active := false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select avg(Mark) as sr from Certificate'); ADOQuery1.Active := true; Хотелось бы записать данное среднее значение в edit , не мог бы кто-нибудь подсказать, как? Ошибок вроде не выдает, но есть сомнения, что среднее значение вообще не считает... Заранее спасибо, сильно не пинайте |
28.11.2017, 21:25 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
30.11.2017, 09:30 | #3 |
Регистрация: 28.11.2017
Сообщений: 9
|
Не работает... Нет у adoquery свойства fieldbyname
|
30.11.2017, 09:38 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
30.11.2017, 10:59 | #5 |
Регистрация: 28.11.2017
Сообщений: 9
|
Если присваивать значение из sr в переменную или edit ,то там Почему то нет fieldbyname
|
30.11.2017, 11:10 | #6 |
Регистрация: 28.11.2017
Сообщений: 9
|
Вот полный код:
With Form1 do Begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add ('Select avg (Mark) as sr from Certificate'); Edit1.Text := ADOQuery1.FieldByName ('sr').AsString; ADOQuery1.ExecSQL; End; Где то косяк видимо |
30.11.2017, 11:20 | #7 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Полным кодом это трудно назвать. Конкретный пример:
Откуда происходит обращение к Form1? Если из её собственной функции - то тут этот with Form1 лишний. Если из другой формы - проверьте, доступна ли Form1? Подключена ли к этой форме? А вообще - программа хотя бы запускается? Если нет - что говорит компилятор? Правильно будет работать, если вместо ExecSQL (который вообще-то применяется для запуска команд - INSERT, DELETE, UPDATE - но никак не для селектов) использовать Open. И вызывать его нужно раньше, чем обращаетесь к полю: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 30.11.2017 в 11:22. |
30.11.2017, 12:03 | #8 |
Регистрация: 28.11.2017
Сообщений: 9
|
Программа запускается, выдает ошибку is not a valid integer value , учел ваши поправки на счет open, но итог тот же. При выборе в adoquery1 fieldbyname его просто нет в открывающейся подсказке.
|
30.11.2017, 12:11 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
эта ошибка не имеет ничего общего к обсуждаемой здесь проблеме.
для того, чтобы в этом убедиться, закомментируйте строчку с Цитата:
|
|
30.11.2017, 12:13 | #10 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вирус в NodeJS, AVG 2014 | vinniepooh | Безопасность, Шифрование | 7 | 24.07.2016 20:40 |
не работают avg,sum,min,max в delphi!!!!!!!!! | Pilyla | БД в Delphi | 9 | 11.01.2015 20:07 |
AVG Среднее значение | nastena_r_v | БД в Delphi | 4 | 16.11.2012 15:45 |
Вычисление AVG | Karla7 | Microsoft Office Excel | 10 | 27.08.2011 00:58 |
Помогите пожалуйста удалить AVG. | nataffka | Помощь студентам | 1 | 01.02.2009 08:44 |