Здравствуйте. Пишу курсовую работу на Delphi и access. Преподавателей в нашей провинции нормальных нет. Языки программирования на самом примитивном уровне изучались. Над кодом можете посмеяться или поплакать((
БД-access
Задача такая. Нужно реализовать цикл проверки значений поля БД.
1. В столбце Return_b таблицы Резерв находится дата.
2. При совпадении даты поля Return_b с текущей датой, стрОки из таблицы удаляются.
3. При удалении строки из таблицы мы ищем по полю ISBN книгу в таблице Books и прибавляем в столбец Kolvo одну единицу(+1).
Пробовал реализовать, знаю что не правильно. Подскажите пожалуйста.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var b:integer;
c:string;
begin
while not Form1.DataSource1.DataSet.Eof do begin
if Form1.DataSource1.DataSet.FieldByName('Return_b').Value=datetostr(now()) then
begin
Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('UPDATE Books SET [Kolvo] = ":b" WHERE ISBN = ":c"'); //изменяем совпадающие поля по ISBN
b:=Form1.DBGrid3.DataSource.DataSet.FieldByName('Kolvo').AsInteger; //присваиваем переменной значение уже имеющихся в наличии книг данного ISBN
Form1.ADOQuery1.Parameters.ParamByName('b').Value:=b+1; //прибавляем
Form1.ADOQuery2.Parameters.ParamByName('c').Value:=Form1.DBGrid1.DataSource.DataSet.FieldByName('ISBN').Value; // присваиваем "с" данные ISBN таблицы РЕЗЕРВА
Form1.ADOQuery1.Open; //выполняем запрос изменения записи
Form1.ADOQuery2.Delete; //удаляем книгу из таблицы резерва
Form1.DataSource1.DataSet.Next; //смотрим след поле
end;
end;
end;
вылезает ошибка Field 'Kolvo' not Found. Проверял всё тысячу раз, все номера ADOQuery, DBGrid и DataSource правильные. Пробовал здесь через DBGrid потому что при обращении через DataSource выдавало такую же ошибку...