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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 21:08   #1
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию Обработка чисел в БД

Почитал литературу.. но не совсем вкуриваю как работать с БД..

вот мне допустим надо из определенной записи отнять единицу.. как это сделать?

и как вообще обращаться к записям?

P.S. знаю что нубские вопросы.. но всё же тут, я думаю, мне лучше объяснят..
Siluet вне форума Ответить с цитированием
Старый 29.03.2010, 08:10   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
Сообщение

Ну самый простой пример. Допустим вы выбрали запись (просто кликом мыши... можно конечно и с помощью фильтра или метода Locate или SQL)
Можно обратиться к полю над которым будете проводить действия по имени
Код:
AdoTable1.Edit;
AdoTable1.FieldByName('Расчёт').AsInteger:=AdoTable1.FieldByName('Расчёт').AsInteger-1;
AdoTable1.Post;
Всё
SERG1980 вне форума Ответить с цитированием
Старый 29.03.2010, 10:53   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

добавлю. а если нужно отнять значение от записи в таблице, то можно воспользоваться SQL:
Код:
update ВашаТаблица set ИмяПоля = ИмяПоля -1 
   where УникальныйКод = ЗначениеКодаДляНужнойЗаписи
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2010, 14:00   #4
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

При нажатий на Button2 должно уменьщится на 1..

Вот я пишу

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Edit;
table1.FieldByName('Kolvo').AsInteger := table1.FieldByName('kolvo').AsInteger-1;
Form1.Table.Post;
end;
Выходит ошибка.. что не так делаю ?
Изображения
Тип файла: jpg Безымянный.JPG (99.2 Кб, 125 просмотров)
Тип файла: jpg Ошибка.JPG (18.4 Кб, 103 просмотров)

Последний раз редактировалось Siluet; 29.03.2010 в 20:26.
Siluet вне форума Ответить с цитированием
Старый 29.03.2010, 14:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Похоже на то что другая программа (или твоя же но другой компонент) уже стоит на нужной тебе записи, и не дает в нее писать.
Нужно анализировать весь код и базу чтоб сказать где ошибся ты.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.03.2010, 14:41   #6
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

Вот весь проект..

И если не сложно.. исправьте код пожалуйста..
Вложения
Тип файла: rar БД.rar (340.3 Кб, 8 просмотров)
Siluet вне форума Ответить с цитированием
Старый 29.03.2010, 15:54   #7
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Не находит у меня псевдоним вашей БД. А не нельзя ли использовать ADO+БД Аксес, не будет проблем при переносе проги на другой комп а то с этим BDE гемор какой то. Вроде БД простенькая

Последний раз редактировалось SERG1980; 29.03.2010 в 15:56.
SERG1980 вне форума Ответить с цитированием
Старый 29.03.2010, 20:37   #8
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

Код:
Table1.Edit;
table1.Fields[2].AsInteger := table1.Fields[2].AsInteger-1;
Table1.Post;
все норм.. только он отнимает единицу из последней записи.. а как сделать чтобы отнималось из пред последней?
Siluet вне форума Ответить с цитированием
Старый 30.03.2010, 15:57   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как сделать чтобы отнималось из пред последней?
Ну в принципе
Код:
 table1.last;Table1.prior;
 table1.tag:=table1.Fields[2].AsInteger;
 table1.last;
 Table1.Edit;
  table1.Fields[2].AsInteger := table1.tag-1;
Table1.Post;
Но по хорошему это делается триггерами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2010, 16:08   #10
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

Спасибо огромное..
1. Table1.tag и 2. Table1.prior что означает?
Siluet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строк Vad56 Помощь студентам 1 03.12.2009 23:26
Delphi:Определить имеется ли среди чисел a,b,c хотя бы одна пара взаимно противоположных чисел. Skvot Помощь студентам 6 27.04.2009 11:47
Обработка чисел с разрядностью, превышающую Extended roach1967 Общие вопросы Delphi 1 02.03.2009 02:42
обработка строк densan Общие вопросы Delphi 3 26.08.2008 11:11
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53