Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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-ва и т.д..
  smile 

Автор: Vyacheslav 21.5.2007, 12:58
Модератор: Название темы должно отражать ее суть!

Автор: Rodman 23.5.2007, 08:49
Power_Lifter, обязательно использовать DataSet?

Автор: Power_Lifter 23.5.2007, 17:01
Цитата(Rodman @ 23.5.2007,  08:49)
Power_Lifter, обязательно использовать DataSet?

думаю да...а как по другому?, а что плохого в ADODataSet?

Автор: Power_Lifter 23.5.2007, 20:34
Все тему можно закрывать..!, я сам нашел ошибку всьо было гуд., только нехватало одново else
 smile  smile 

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, темы закрывают, только при нарушениях. В случаях нахождения решения, вопрос помечается решенным создателем темы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)