Вот на лабу задание:
Работа с компонентом Query
1.На вкладке BDE выбрать компонент Query. Назначить следующие свойства DatabaseName; SQL (записать запрос).
2.Установить следующие компоненты на форму: DataSource, DBGrid, DBNavigator, Button.
3.В свойстве Caption кнопки написать “открыть Query”. На событие click кнопки написать команду: Query1.Open;
4.Отобразить данные, используя компонент DBEdit (Вкладка DataControls). Назначить свойства DataField и DataSource.
Свойства и процедуры набора данных (Query)
open – открыть набор данных
eof – конец набора данных
First – первая запись
Last – последняя запись
Next – следующая запись
insert – вставка записи
edit – редактирование записи
delete – удаление записи
Post – сохранить
ApplyUpdates – применить изменения в БД
Prior – последняя
Навигация
Установить кнопки с именами: Первая запись, Назад, Вперед, Последняя запись. Реализовать навигацию.
Модификация таблицы
1.Для модификации нескольких записей или таблиц используется компонент UpdateSql.
2.Установить компоненты Query (вкладка BDE), DataSource (вкладка DataAccess).
3.Query назначить свойство UpdateObject.
4.Двойным щелчком левой кнопки мыши по UpdateSql открыть окно генерации SQL. Выбрать поля, которые будут модифицироваться (все, кроме ключа). Нажать кнопку Generate SQL.
5.Query назначить следующие свойства: CachedUpdate (кэшированные изменения); RequestLive (возможность редактирования полученного набора данных); SQL.
6.Назначить событие OnUpdateRecord (DataSet: TDataSet; UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction), где DataSet – набор данных; UpdateKind – принимает следующие значения: ukModify - операция изменения, ukInsert - операция вставки, ukDelete - операция удаления; переменной UpdateAction присваивается одно из следующих значенияй: uaAbort, uaApplied, uaFail, uaRetry, uaSkip.
Пример:
UpdateSql1.Apply(UpdateKind);
UpdateAction := uaApplied;
7.Поставить и обработать кнопки Добавления, Изменения, Удаления записи, а также кнопки Сохранить и Применить изменения.
вот код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, DB, Mask;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Query1: TQuery;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
Button1: TButton;
DBEdit1: TDBEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Label4: TLabel;
Label5: TLabel;
UpdateSQL1: TUpdateSQL;
DataSource3: TDataSource;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Query1UpdateRecord(DataSet: TDataSet; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Query1.First;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Query1.Prior;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Query1.Last;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Query1.Next;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Query1.Open;
DataSource3.DataSet:=Query1;
Query1.Insert;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Query1.Open;
DataSource3.DataSet:=Query1;
Query1.Edit;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Query1.Open;
DataSource3.DataSet:=Query1;
Query1.Delete;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Query1.ApplyUpdates;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Query1.Post;
end;
procedure TForm1.Query1UpdateRecord(DataSet: TDataSet; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
UpdateSql1.Apply(UpdateKind);
UpdateAction:=uaApplied;
end;
end.
Добавлено через 1 мин.
И по поводу Назначить событие OnUpdateRecord (DataSet: TDataSet; UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction), где DataSet – набор данных; UpdateKind – принимает следующие значения: ukModify - операция изменения, ukInsert - операция вставки, ukDelete - операция удаления; переменной UpdateAction присваивается одно из следующих значенияй: uaAbort, uaApplied, uaFail, uaRetry, uaSkip.
--я его тупа вставил в type и в поцедуры..наверное это не правильно?