| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > 21111111111111111102111111120. |
| Автор: Power_Lifter 21.5.2007, 12:54 |
| Привет!!! Помогите мне с программой, будто ничего сложно но не работает такая задача есть таблица базы данних Accsses с полями Название, Номер_групы ... мне нужно сделать чтобы ко всем числам записей поля "Номер_групы" добавлялось число 100, а затем проверялось условие, если это чило >=500, то данный запись удалялась.. мой текст программы...исправьте что нетак DataModule7->ADODataSet3->First(); while (DataModule7->ADODataSet3->Eof==false) { DataModule7->ADODataSet3->Edit(); DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger=StrToInt(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger+100); DataModule7->ADODataSet3->Post(); if(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger >=500) DataModule7->ADODataSet3->Delete(); DataModule7->ADODataSet3->Next(); } второй вариант: DataModule7->ADODataSet3->First(); while (DataModule7->ADODataSet3->Eof==false) { DataModule7->ADODataSet3->Edit(); DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger=StrToInt(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger+100); DataModule7->ADODataSet3->Post(); DataModule7->ADODataSet3->Next(); } DataModule7->ADODataSet3->First(); while (DataModule7->ADODataSet3->Eof==false) { if(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger >=500) DataModule7->ADODataSet3->Delete(); DataModule7->ADODataSet3->Next(); } оба варианта добавляют к записям хорошо, а вот удаляют..не все.., например есть 8-семь записей которые отвечают условию >=500, то видаляет за первый раз половину 4-тиры.., потом 2-ва и т.д.. |
| Автор: Vyacheslav 21.5.2007, 12:58 |
| Модератор: Название темы должно отражать ее суть! |
| Автор: Rodman 23.5.2007, 08:49 |
| Power_Lifter, обязательно использовать DataSet? |
| Автор: Power_Lifter 23.5.2007, 17:01 | ||
думаю да...а как по другому?, а что плохого в ADODataSet? |
| Автор: Power_Lifter 23.5.2007, 20:34 |
| Все тему можно закрывать..!, я сам нашел ошибку всьо было гуд., только нехватало одново else DataModule7->ADODataSet3->First(); while (DataModule7->ADODataSet3->Eof==false) { DataModule7->ADODataSet3->Edit(); DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger=StrToInt(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger+100); DataModule7->ADODataSet3->Post(); DataModule7->ADODataSet3->Next(); } DataModule7->ADODataSet3->First(); while (DataModule7->ADODataSet3->Eof==false) { if(DataModule7->ADODataSet3->FieldByName("Номер_групы")->AsInteger >=500) DataModule7->ADODataSet3->Delete(); else DataModule7->ADODataSet3->Next(); } |
| Автор: Klin 23.5.2007, 22:20 |
| Power_Lifter, темы закрывают, только при нарушениях. В случаях нахождения решения, вопрос помечается решенным создателем темы. |