Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/42: Рейтинг темы: голосов - 42, средняя оценка - 4.71
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109

Нахождение максимального элемента в DBGrid

09.12.2009, 18:35. Показов 8485. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Не подскажите как реализовать следующее: нужно сделать ручной счетчи, так чтобы при добавлении новой записи в поле Код, появлялось число на единицу больше максимального.

я делаю так,.... но так не работает:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
var max, i: integer;
begin
max:=0;
For i:=0 to Table1.FieldCount-1 do
if Table1Id.Value > max then max:=Table1Id.Value;
max:=max+1;
Table1.Append;
Table1Id.Value:=max;
Table1Name.Value:=Edit1.Text;
Table1.Post;
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2009, 18:35
Ответы с готовыми решениями:

Массивы - замена элемента, нахождение нового массива и максимального элемента
Если не затруднит, помогите, пожалуйста, написать программу на Паскале. Задание: Дана матрица А(5,5) - заполнить генератором...

Нахождение максимального элемента в массиве и его индекс (элемента)
Доброго времени суток. Вот исходный код поиска максимального элемента массива: #include"stdafx.h" ...

Нахождение максимального элемента
Друзья, вот незадача, код написан, а работает не верно. Голову сломал что не так, может кто увидит - подскажет? За ранее спасибо. ...

42
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 09:41
Студворк — интернет-сервис помощи студентам
DenProx, а что в последнем-то варианте не нравится дельфи?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 09:47  [ТС]
Lord_Voodoo, пишет что не найдено поле IDCost (поле по которому делаем поиск максимума)...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 09:49
DenProx, странно, а в таблице cost есть такое поле? а еще вопрос, ты правильно настроил вообще adoquery? прописал ему connection?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 09:58  [ТС]
Lord_Voodoo, Поле конечно есть, и conection прописан (без него вообще бы не работало), в Гриде таблица то отображается нормально...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 10:02
DenProx, покажи тогда скрин ошибки
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 10:07  [ТС]
вот скрин:
Миниатюры
Нахождение максимального элемента в DBGrid  
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 10:41
DenProx, а ругается на Open?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 10:44  [ТС]
Lord_Voodoo, ну получается что да...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 10:51
DenProx, еще как вариант проверь, нет ли у тебя русских букв, потому что не нравится имя поля, значит с ним что-то не так
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 11:05  [ТС]
Lord_Voodoo, создал новую БД, теперь код такой:

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var max_id: integer;
begin
 
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT MAX(ID) AS max_id FROM TAvto');
  ADOQuery1.Open;
  max_id:=ADOQuery1.FieldByName('max_id').AsInteger+1;
  ADOQuery1.Close;
end;
пишет такую ошибку:
Миниатюры
Нахождение максимального элемента в DBGrid  
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 11:15  [ТС]
Lord_Voodoo, все, получилось - ошибок нет )) имя не то указал

Добавлено через 8 минут
Lord_Voodoo, что то опять не так.... при повторном запуске, выдает прежнюю ошибку - Field Key not found ...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 11:52
DenProx, покажи код снова))
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 12:02  [ТС]
Lord_Voodoo,
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT MAX(Key) AS max_id FROM TAvto');
  ADOQuery1.Open;
  max_id:=ADOQuery1.FieldByName('max_id').AsInteger+1;
  ADOQuery1.Close;
end;
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 12:19
max_id - у тебя нигде не объявлен
ну и смотри, что с названием поля снова, потому что ошибка идентична предыдущей
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 12:22  [ТС]
Lord_Voodoo, max_id объевлена как глобальная переменная...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 12:29
DenProx, просто в прошлом коде, она была локальная... а что с именем, разобрался? скопируй из базы имя поля... такое ощущение, что у тебя punto switcher на машине балуется
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 13:23  [ТС]
Lord_Voodoo, у меня его нет (punto switcher) ... )

Добавлено через 5 минут
Lord_Voodoo, чертовщина какая то, решил проверить на обычное добавление:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
begin
  {ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT max(Key1) AS max_id FROM TAvto');
  ADOQuery1.Open;
  max_id:=ADOQuery1.FieldByName('max_id').AsInteger+1;
  ADOQuery1.Close;}
  ADOQuery1.Append;
  ADOQuery1Key1.Value:=3;
  ADOQuery1Name.Value:=Edit1.Text;
  ADOQuery1.Post;
end;
все нормально добавляет....

Добавлено через 45 минут
Lord_Voodoo, нашел причину, но не знаю почему так..... если поля добавить в Fields Editor, то не работает, если удалить, максимум находится, но не получается его присвоить новой записи...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 13:34
DenProx, погоди, ты запросу добавляешь поля текущего запроса?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
15.12.2009, 13:39  [ТС]
Lord_Voodoo, всмысле ?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.12.2009, 14:00
DenProx, ну можно сделать так: лепишь компонента запроса на форму, потом дописываешь запрос прямо в свойства компонента, потом можно кликнуть правой и добавить все поля, тогда твой запрос всегда будет помнить поля, которые в нем есть и сильно ругаться, когда в запросе таких полей не будет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2009, 14:00

Нахождение максимального элемента
Написать программу, которая находить максимальный элемент в матрице. Диапазон значений и количество элементов массива задать как...

Нахождение максимального элемента функцией
#include <stdio.h> float Max1(float a,float b){ float max, x = 0, y = 0; if(x>y){ max=x; } else max=y; ...

Нахождение максимального элемента в массиве.
Решите задачку пожалуйста. Найдите максимальный элемент в массиве.

Нахождение максимального элемента в матрице
Нужно решить задачу и найти наибольший элемент. Подскажите, как сделать? НУЖНО РЕШИТЬ ЗАДАЧУ И НАЙТИ НАИБОЛЬШИЙ ЭЛЕМЕНТ!!! ПОДСКАЖИТЕ...

Нахождение максимального элемента в списке
Собственно нид фаст помощь ) Список вводим с клавиатуры ( может содержать отрицательные числа ) После ввода списка, программа выдает...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru