Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 18:40   #1
mmihan
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 30
По умолчанию Перезапись поля во всех строках таблицы Бд

Добрый день как реализовать Перезапись одного поля 'N'- Тип поля числовой , Бд access,
во всех строках БД с увеличением +1
если делаю ADOQuery то ссылается на неверный тип данных..
если через AdoTable то просто переходит на последнюю строку

есть Заявки с номерами 1 2 3 4 5 итд. удаляем заявку с номером 3 получается 1 2 4 5 нужно сделать 1 2 3 4
Код:
procedure TMainForm.Button1Click(Sender: TObject);
 
  var m:integer;
begin
  ADOQuery1.Close;
 
  ADOQuery1.Open;
  while ADOQuery1.Eof do
begin
 
  m:=m+ADOQuery1.FieldByName('N').AsInteger;
  ADOQuery1.Next;
  ADOQuery1.Active:=true;
 
end;
end;
mmihan вне форума Ответить с цитированием
Старый 10.06.2012, 19:21   #2
Ilya_L
Пользователь
 
Регистрация: 18.06.2010
Сообщений: 78
По умолчанию

for i:=0 to ADOQuery1.RecordCount-1 do begin
ADOQuery1.Edit;
m:=m+ADOQuery1.FieldByName('N').AsI nteger;
ADOQuery1.Next;
ADOQuery1.FieldByName('N').AsIntege r := m;
ADOQuery1.Post;
end;

может так сработает, попробуй
Ilya_L вне форума Ответить с цитированием
Старый 13.06.2012, 10:57   #3
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Ilya_L, экий ты юморист. Понимание того, что значения полей N (при исходных 1 2 4 5) будут иметь вид 1 3 7 12 - присутствует?

Код:
with ADOQuery1 do begin
   First;
   if not Connection.InTransaction then Connection.BeginTrans;
   while not Eof do begin
      Edit;
      FieldByName('N').AsInteger := RecNo+1; // Это чтобы нумерация начиналась не с 0, а с 1
      Post;
      Next;
   end;
   Connection.CommitTrans;
end;
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 13.06.2012, 11:30   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Да вы тут все юмористы.
Код:
UPDATE mytable SET N = N +1
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 13.06.2012, 11:45   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это тоже не пойдет. ТС хочет дырки убрать
Цитата:
есть Заявки с номерами 1 2 3 4 5 итд. удаляем заявку с номером 3 получается 1 2 4 5 нужно сделать 1 2 3 4
Вопрос - а нужно ли это вообще? И, если делать, то для выше приведенного случая:
Код:
UPDATE mytable SET N = N -1 WHERE N>2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2012, 11:50   #6
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

А зачем дырки убирать? И дырки эти в чем? Что за поле N? Какой в нем смысловой посыл?
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Старый 13.06.2012, 13:41   #7
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
UPDATE mytable SET N = N -1 WHERE N>2
Ну, это только для приведенного случая. А если 150 записей, и из них в произвольных местах убрать штук пятнадцать?

Правда, смысла убирать дырки я тоже не вижу, но ежели уж хочется человеку...
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ячейки (пусто) в строках сводной таблицы MaxxVer Microsoft Office Excel 8 22.01.2021 14:08
СИ, матрица, поменять max и min элементы во всех строках... Immoralist Помощь студентам 6 17.09.2014 14:39
Задача по паскалю - матрица А(5*5), в строках с отрицательным элементом на главной диагонали найти наибольший из всех элементов karacek Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2012 12:49
Access ограничить значение поля таблицы значениями полей другой таблицы Сергей089 Microsoft Office Access 10 08.12.2010 02:22
В строках таблицы,содержащих наибольшее кол-во нулей, найти минимальную в строке сумму абсолютных величин Bga Помощь студентам 2 07.12.2009 00:52