C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Программное удаление всех записей в поле БД
maikl
Отправлено: 26.12.2003, 09:11


Станционный диспетчер

Группа: Участник
Сообщений: 135



Скажите пожалуйста как можно удалить все данные из поля таблицы. Я умаю надо писать так :

Table1->FieldByName("Gruppa")->...

А что дальше не знаю. Если это не так, то подскажите как надо сделать. В таблице у меня несколько полей, в других полях удалятся ничего не должно.
Nick
Отправлено: 26.12.2003, 14:46


Машинист паровоза

Группа: Участник
Сообщений: 247



Если таблица маленькая сойдет и
Table -> First();

while (! Table->Eof )
{
Table->Edit();
Table->FieldByName("Group")-> ... = ...
Table->Post();
Table->Next();

};

Table->First(); // или как нибудьдобраться обратно

Если большая:
Делаешь запрос

"Update TableName
Set
FieldName = Значение
where условие"

Потом Refresh таблицы.





maikl
Отправлено: 26.12.2003, 15:34


Станционный диспетчер

Группа: Участник
Сообщений: 135



Огромное спасибо, но я не совсем понял что в Table->FieldByName("Group")-> ... = ... ,за место ... писать, я попробывал:

Table->FieldByName("Group")-> AsString = ""; Появляется ошибка, программа компилируется, но это не работает.

И как определить маленькая таблица, или большая, у меня будет в ней около 40 записей, я думаю это не много.

А насчет всего этого я придумал другой алгоритм, в начале определить сколько записей в таблице, присвоить значению i это количество, и дальше уже в цикле зная сколько у меня записей, удалять все что мне необходимо. Проблема в том что я не знаю какой функцией определить сколько у меня записей в таблице, можно конечно посчитать с помощью алгоритма который ты предложил выше, но тогда зачем мне все это нужно, в общем все равно у тебя наверное быстрее будет работать, если все же такая функция есть, то скажи хочу проверить на это практике.
maikl
Отправлено: 26.12.2003, 15:45


Станционный диспетчер

Группа: Участник
Сообщений: 135



Все заработало, просто я забыл отключить кеширование, там ничего в таблице у меня не хранилось, только в памяти, вот и показывал ошибку, теперь все в порядке. smile.gif biggrin.gif Огромное спасибо.
pasha
Отправлено: 26.12.2003, 17:13


Дежурный стрелочник

Группа: Участник
Сообщений: 62



В цикле:
CODE

Table->First();
while(!Table->Eof)
{
 Table->Edit();
    Table->FieldByName("Group")->Clear();
 Table->Post();
 Table->Next();
}


а быстрее и правильнее, как написал Nick
через SQL-запрос:
"Update TableName set FieldName = NULL"

Отредактировано pasha — 26/12/2003, 19:18
maikl
Отправлено: 27.12.2003, 07:44


Станционный диспетчер

Группа: Участник
Сообщений: 135



Конечно быстрее через SQL это делать, я и не спорю, а лучше так же знать как это можно сделать и без него, всегда пригодится.

Вернуться в Работа с базами данных в C++Builder