Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/63: Рейтинг темы: голосов - 63, средняя оценка - 4.60
6 / 6 / 1
Регистрация: 13.12.2012
Сообщений: 104

ADOTable

15.09.2013, 18:12. Показов 11681. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, подскажите как определить в таблице ADOTable текущую строку (номер текущей строки),или сразу в DBGrid, то есть которая сейчас в фоксе(выделенна), и как определить последнюю строку в этом списке?

Добавлено через 11 минут
Нашел текущую строку
C++
1
DBGrid1->SelectIndex;
А вот как последнюю не могу определить
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2013, 18:12
Ответы с готовыми решениями:

Из таблицы ADOTable на одной форме произвести поиск по столбцу и найденное скопировать в ADOTAble другой
Добрый день уважаемые знатоки, сегодня с вами играет студент из Крыма. Внимание вопрос: Необходимо из таблицы ADOTable на одной форме...

Очистка записей из ADOTable и последующая вставка записей в эту же ADOTable
Очищает ADOItogAnt: void __fastcall TForm1::Button18Click(TObject *Sender) { ADOItogAnt->Edit(); while(!ADOItogAnt->Eof) { ...

If и ADOtable
Здравствуйте форумчане!!! Проблема в следующем, я пишу программу для работы с базой данных, и так как у меня в ней много таблиц, а бы хотел...

12
45 / 37 / 9
Регистрация: 26.04.2013
Сообщений: 90
15.09.2013, 19:55
ADOTable1->RecNo //номер выделенной записи
ADOTable1->RecordCount ; // количество строк в ADOTable1(она же последняя)
2
6 / 6 / 1
Регистрация: 13.12.2012
Сообщений: 104
15.09.2013, 20:58  [ТС]
Цитата Сообщение от Tim979 Посмотреть сообщение
ADOTable1->RecNo //номер выделенной записи
ADOTable1->RecordCount ; // количество строк в ADOTable1(она же последняя)
Спасибо)

Добавлено через 7 минут
Цитата Сообщение от Tim979 Посмотреть сообщение
ADOTable1->RecNo //номер выделенной записи
ADOTable1->RecordCount ; // количество строк в ADOTable1(она же последняя)
А не подскажите как сделать, мне нужно выбрать строк упрограммно, тоесть прямо указать типа line[1], обращение к первой и т.д.
1
45 / 37 / 9
Регистрация: 26.04.2013
Сообщений: 90
15.09.2013, 21:06
ADOTable1->RecNo=2; //обращение ко второй
А спасибо лучше нажимать

Добавлено через 2 минуты
но зачем это надо? не лучше ли обращаться к записи по ее ключевому полю?
3
6 / 6 / 1
Регистрация: 13.12.2012
Сообщений: 104
15.09.2013, 21:08  [ТС]
Цитата Сообщение от Tim979 Посмотреть сообщение
ADOTable1->RecNo=2; //обращение ко второй
А спасибо лучше нажимать

Добавлено через 2 минуты
но зачем это надо? не лучше ли обращаться к записи по ее ключевому полю?
нажал)
Ну мне для цикла, нужно перебрать все строки, выйти из цыкла сравнив с последней строкой, и изменив порядок нумерацию строк)
3
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
15.09.2013, 22:16
Цитата Сообщение от Tim979 Посмотреть сообщение
ADOTable1->RecNo=2; //обращение ко второй
А спасибо лучше нажимать

Добавлено через 2 минуты
но зачем это надо? не лучше ли обращаться к записи по ее ключевому полю?
Подскажите в чем ошибка? Пытаюсь удалить строку, а все остальные что ниже изменить последующую нумерацию на -1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
{
ADOTable1->Delete();
 
int e =ADOTable1->RecordCount;
for (int f =ADOTable1->RecNo+1;f<e;f++){
ADOTable1->RecNo=f;
 TDataSet  *ds;
ds = Form1->DBGrid1->DataSource->DataSet;
ds -> Edit();
ds->Insert();
  ds->Fields->FieldByName("¹")->AsString = f;
           ds->Post();
}
выбивает ошибку но не компилятор

смущает правда говоря эта строка
C++
1
ds = Form1->DBGrid1->DataSource->DataSet;
0
45 / 37 / 9
Регистрация: 26.04.2013
Сообщений: 90
15.09.2013, 22:28
Методы Insert и Append переводят набор данных в режим вставки, и добавляют к нему новую пустую запись.
Вызов метода Edit - перевод набора данных на которой стоит курсор в режим редактирования.
а теперь посмотрите, что у вас вначале ds -> Edit(); а потом ds->Insert(); и как результат получается ошибка (Edit() как минимум лишний).
Да и изменять поля если они ключевые таким образом это очень жестоко для БД если вам это удастся то может такой бред в других таблицах БД начаться.
0
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
15.09.2013, 22:32
Цитата Сообщение от Tim979 Посмотреть сообщение
Методы Insert и Append переводят набор данных в режим вставки, и добавляют к нему новую пустую запись.
Вызов метода Edit - перевод набора данных на которой стоит курсор в режим редактирования.
а теперь посмотрите, что у вас вначале ds -> Edit(); а потом ds->Insert(); и как результат получается ошибка (Edit() как минимум лишний).
Да и изменять поля если они ключевые таким образом это очень жестоко для БД если вам это удастся то может такой бред в других таблицах БД начаться.
Все равно ошибка, не подскажите как сделать по нормальному, когда удаляешь 1 строку, к примеру в середине списка, тоесть идут строки
1
2
3
4
после удаления получается
1
2
4
а нужно что бы строку "4" переназначили 3, и последующие тоже
0
45 / 37 / 9
Регистрация: 26.04.2013
Сообщений: 90
15.09.2013, 22:45
а за чем это изменение нужно?
попробуй так
C++
1
2
3
4
5
6
7
8
ADOTable1->Delete();//удалил
ADOTable1->First(); // ставим курсор на первую запись 
for (int f =0;f<ADOTable1->RecordCount;f++)//цикл
{
ADOTable1->FieldByName("№")->AsString = f+1;//присвоили полю "№" значения от 1
ADOTable1->Post();//сохранили
ADOTable1->Next();//следующая запись
}
2
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
15.09.2013, 22:49
Цитата Сообщение от Tim979 Посмотреть сообщение
а за чем это изменение нужно?
попробуй так
C++
1
2
3
4
5
6
7
8
ADOTable1->Delete();//удалил
ADOTable1->First(); // ставим курсор на первую запись 
for (int f =0;f<ADOTable1->RecordCount;f++)//цикл
{
ADOTable1->FieldByName("№")->AsString = f+1;//присвоили полю "№" значения от 1
ADOTable1->Post();//сохранили
ADOTable1->Next();//следующая запись
}
мама моя не сильная в компах))
Что бы не обучатся 1с делаю ей программу спец для ее склада
0
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
15.09.2013, 23:11
Цитата Сообщение от Tim979 Посмотреть сообщение
а за чем это изменение нужно?
попробуй так
C++
1
2
3
4
5
6
7
8
ADOTable1->Delete();//удалил
ADOTable1->First(); // ставим курсор на первую запись 
for (int f =0;f<ADOTable1->RecordCount;f++)//цикл
{
ADOTable1->FieldByName("№")->AsString = f+1;//присвоили полю "№" значения от 1
ADOTable1->Post();//сохранили
ADOTable1->Next();//следующая запись
}
Ошибка в строке при нажатии на кнопку

И потом указывает на эту строку
C++
1
ADOTable1->FieldByName("¹")->AsString = f+1;
0
45 / 37 / 9
Регистрация: 26.04.2013
Сообщений: 90
15.09.2013, 23:28
ну так добавь Edit он же пишет, что датасет не в изменении или добавлении
C++
1
2
3
4
5
6
7
8
9
ADOTable1->Delete();//удалил
ADOTable1->First(); // ставим курсор на первую запись 
for (int f =0;f<ADOTable1->RecordCount;f++)//цикл
{
ADOTable1->Edit();
ADOTable1->FieldByName("№")->AsString = f+1;//присвоили полю "№" значения от 1
ADOTable1->Post();//сохранили
ADOTable1->Next();//следующая запись
}
2
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
15.09.2013, 23:32
Цитата Сообщение от Tim979 Посмотреть сообщение
ну так добавь Edit он же пишет, что датасет не в изменении или добавлении
C++
1
2
3
4
5
6
7
8
9
ADOTable1->Delete();//удалил
ADOTable1->First(); // ставим курсор на первую запись 
for (int f =0;f<ADOTable1->RecordCount;f++)//цикл
{
ADOTable1->Edit();
ADOTable1->FieldByName("№")->AsString = f+1;//присвоили полю "№" значения от 1
ADOTable1->Post();//сохранили
ADOTable1->Next();//следующая запись
}
Все работает! Спасибо большое )
Миниатюры
ADOTable  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2013, 23:32
Помогаю со студенческими работами здесь

ADOTable
Добрый день Подскажите как в ADOTable сделать при нажатии на Checkbox невидимым одну из колонок в таблице)

Фильтр ADOTable
Как написать фильтр по всем колонкам в DBGrid, поля фильтра числовые.вот что у меня есть for (int i = 3; i &lt;...

1 ADOConnection и 2 ADOTable
Всем доброго времени суток. Есть две связанные таблицы (1-1), первая основная, вторая хранилище картинок. На форме ADOConnection, ADOTable...

DBChart и ADOTable
Ошибку не выдает, результата нет. Что я пропустил? (Использую такие компоненты ADOTable, DBGrid, DataSource) ...

ADOTable, редактирование
Привет всем... еще раз :) Уже освоил добавление записей в таблицы через ADO, но редактирование не работает, увы. Вот код ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru