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

ADOTable

15.09.2013, 18:12. Показов 11645. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru