Шаг 23.
Основные компоненты Delphi. Вкладка InterBase.
Создание приложения (продолжение)

    На этом шаге мы продолжим создавать приложение.

    Помещаем на форму Form2 еще один компонет IBQuery и установим его свойство DatabaseName в DM.IBDataBase1. В свойство SQL IBQuery2 поместим следуюший запрос:

    Insert into Tovar (Name, Price) 
    Values (:NAME,:PRICE);

    Это означает: поместить в поля Name, Price таблицы Tovar значения, содержащиеся в параметрах :Name и :Price. Отметим, что параметры отличаются от имен полей двоеточием, стоящим перед их именем.

    Параметрам нужно задать значения. Для этого щелкаем по свойству Params, компонента IBQuery2, появляется окошко (рисунок 1).


Рис.1. Окно с именами параметров SQL-запроса

    Выделяем параметр Name и в Инспекторе объектов устанавливаем свойство DataType в ftString, в свойство Value помещаем строку "ААА". DataType - тип параметра, в данном случае текстовый, Value - значение по умолчанию; если параметру не присвоено никакого значения, то ему будет присвоено значение "ААА".

    Выделяем параметр Price и в Инспекторе объектов в свойство DataType помещаем значение ftInteger (значение параметра целое число), в свойстве Value задаем значение по умолчанию (0).

    Помещаем на форму еще одну кнопку TButton, у которой свойство Caption имеет значение "+". Эта кнопка будет использоваться для добавления товара. Обработчик события OnClick этой кнопки имеет значение:

procedure TForm2.Button3Click(Sender: TObject); 
var
  s: string;
  с: integer; 
begin
  s:=InputВох('Введите данные' , 'Введите название товара',");
  c:=StrToInt(InputBox('Bведитe данные', 'Введите цену товара',"));
  //Передаем в параметр Name введенное название товара
  IBQuery2.Params.ParamByName('Name').Value:=s; 
  //Передаем в параметр Price введенную цену товара
  IBQuery2.Params.ParamByName('Price').Value:=c;
  //Пытаемся выполнить запрос на вставку записи
  try
    IBQuery2.ExecSQL;
  //Если не удалось, то сообщить пользователю
  except
    ShowMessage('Oшибкa при добавлении данных!, Попробуйте еще раз!');
    //Откатываем изменение
    DM.IBTransactionl.RollbackRetaining;
    exit; 
  end;
  //Если запрос выполнился, то подтверждаем транзакцию
  DM.IBTransactionl.CommitRetaining;
  //Обновляем набор данных
  IBQuery1.Close;
  IBQuery1.Open;
end;

    Помещаем на форму еще один компонент TIBQuery, который будет отвечать за удаление записи из таблицы Tovar. Установим его свойство DatabaseName в DM.IBDataBase1. В свойстве SQL компонента IBQuery3 запишем SQL-запрос:

  Delete from Tovar 
  Where TovarID=:Par1;

    Это означает: удалить из таблицы товаров товар с кодом равным значению параметра. Щелкаем по свойству Params компонента IBQuery3, появляется окно со списком параметров.


Рис.2. Окно со списком параметров

    Вьделяем параметр Par1 и в Инспекторе объектов свойство DataType этого параметра устанавливаем в ftInteger, в свойстве Value пишем значение по умолчанию (0).

    Создадим кнопку TButton, которая будет использоваться для выполнения этого запроса. В свойство Caption этой кнопки поместим "-". Обработчик события OnClick имеет следующий вид:

procedure TForm2.Button4Click(Sender: TObject);
begin
  //Спрашиваем хотите ли удалить запись
  if MessageDlg('Bы уверены, что хотите удалить запись', mtConfirmation, 
    [mb Yes,mbNo] ,0)=mrYes then
    //Если да, то...
    begin
      //... запоминаем код выбранной записи, и помещаем это значение в
      // параметр Par1
      IBQuery3.Params.ParamByName('Par1').Value:= IBQuery1TovarID.Value;
      //Пытаемся удалить запись
      try
        IBQuery3.ExecSQL;
      //Еесли не получилось, то сообщаем об этом 
      except
        ShowMessage('Удаление не прошло не прошло! Запись заблокированa!');
        //Откатывем транзакцию
        DM.IBTransaction1.RollbackRetaining;
        exit;
      end;
      //Если все без ошибок, то потверждаем транзакцию
      DM.IBTransaction1.CommitRetaining;
      //Обновляем набор данных
     IBQuery1.Close; 
     IBQuery1.Open; 
   end;
end;

    Окончательный вид формы Справочник - товары приведен на рисунке 3.


Рис.3. Окончательный вид формы Справочник - товары

    На следующем шаге мы закончим создание приложения.




Предыдущий шаг Содержание Следующий шаг