Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Data Controls




 

 

TDataSet TDataSource (Data Access)

Рис. 5 6

 

 

ADOTable1, DataSource1, DbGrid1, DbNavigator1

 
 
· · ·


Рис. 5 7

 

Рис. 58

 
 

 


Microsoft Jet 4.0 OLE DB Provider

 

TableName ADOTable1

 

 

Active

 

open close

DataSet Þ ADOTable1

 

DataSource

 

 

DBGrid

 

DataField

 

 

Рис. 59

TDBNavigator

 

 

Редактировать текущую запись (nbEdit)

Утвердить результаты изменения записи (nbPost)

Отменить изменения в текущей записи (nbCancel)

Обновить информацию в наборе данных (nbRefresh)

DBNavigatorAll.VisibleButtons := [nbFirst, nbPrior, nbNext, nbLast];

 

 

DbNavigator1.VisibleButtons := DbNavigator1.VisibleButtons – [nbDelete];

 

ConfirmDelete:boolean

 

Листинг 63

procedure TForm1.TableBeforeDelete (Dataset: TDataset)

begin

if MessageDlg('Delete This Record?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then

Abort;

end;

 

 

Hints

 

 

Листинг 64

Procedure Form1.Button1Click(Sender: TObject);

Begin

Table1.Last;

End;

 

Рис. 60

 

 

Константа состояния Метод Описание
dsInactive Close Набор данных закрыт
dsBrowse Open Данные доступны для просмотра, но недоступны для редактирования
dsEdit Edit Данные можно редактировать
dsInsert Insert К набору данных можно добавлять новые записи
dsSetKey SetKey Включается механизм поиска по ключу. Также могут использоваться диапазоны

 

 

DataSet.AutoEdit:Boolean = true

 

insert

 

TField

 

Edit1.Text := Table1.Fields[0].AsString;

 

Editl.Text := Tablel.FieldByName('ФИО’).AsString;

 

 

FieldValues

 

Table1.FieldValues['Field'] := Edit1.Text;

 

 

Table1['ФИО'] := Edit1.Text;

Edit1.Text := Table1['ФИО'];

 

TField

 

Fields

 

FieldByName

 

 

ObjectTreeView DBGrid

 

+ DBGrid1

+ Columns

Поле1

Поле2

Поле N

 

 

PickList

 

CanModify ReadOnly

 

DbGrid1.Columns[3].Font.Size:=20;

DbGrid1.Columns[1].Font.Color := clRed;

 

 

Columns Editor

Рис. 61

 

 

ADOTable

 

Fields Editor

Рис. 62

 

Add fields

Delete

 

 

Form1.<имя переменной>

 

New field Calculated

 

 

OnCalcFields

 

TDBGrid DataSource

 

 

TDBEdit, TDBMemo, TDBRichEdit, TDBText, TDBCheckBox, TDBRadioGroup, TDBListBox,TDBImage

DataField

 

TDBTextAutoSize Wordwrap

 

Table.First;

Table.Next

Table.Last

Table.Prior

 

RecNo := 7;

RecNo := StrToInt(Edit1.Text);

MoveBy(distance: integer):integer

 

BOF EOF

 

RecordCount

 

BeforeScroll AfterScroll

 

Листинг 65

Var

I:integer;

S:real;

. . .

Table1.First;

S := 0;

For i := 1 to Table1.RecordCount do

Begin

S := s + Table1.FieldByName('Stipendia').AsFload;

Table1.Next;

end

. . .

 

Листинг 66

Table1.First;

S := 0;

While not Table1.EOF do

Begin

S := s + Table1.FieldByName('Stipendia').AsFload;

Table1.Next;

end

 

 

ADOTable1.Filter:string

 

 

<, >, <=, >=, <>

+, -, *, /

AND, OR, NOT

[ ]

 

ADOTable1.Filtred:boolean

 

 

DataSource1.State = dsFilter

 

Price > 100 and Price < 1500

 

 

Price > 100 and Count > 500

 

Count of …

 

FilterOptions

 

foCaseInsensitive:boolean

foNoPartialCompare:boolean

 

 

Image

 

 

AfterScroll

 

        Фото
         
         
         

 

ShawPhoto(Draw)

 

Рис. 6 3

 

Листинг 67

type

TForm = class(Form)

. . .

Procedure TableAfterScroll(DataSet:TDataSet);

Procedure DbEdit5KeyPress(Sender:TObject; var Key:Char);

Procedure DbNavigator1Click(Sender:TObject; Button:TNavigateBtn);

. . .

var

Form1:TForm1;

. . .

Procedure ShawPhoto(draw:string);

Begin

try

Form1.Image1.Picture.LoadFromFile(draw);

Form1.Image1.Visible := true;

Except

On EFOpenError do

Begin

MessageDlg('Файл иллюстрации не нейден', mtInformation, [mbOK], 0);

Form1.DbEdit5.Text := '';

end

end

end;

Procedure TableAfterScroll(DataSet:TDataSet);

begin

if Form1.DbEdit5.Visible then

begin

Form1.DbEdit5.Visible := False;

Form1.Label5.Visible := False;

end;

if Form1.DbEdit5.Text <> '' then

ShawPhoto(Form1.DbEdit5.Text)

else

Form1.Image1.Visible := False;

end;

 

Procedure Form1.DbEdit5KeyPress(Sender:TObject; var Key:Char);

begin

if key = #13 then

if Form1.DbEdit5.Text <> '' then

ShawPhoto(Form1.DbEdit5.Text)

Else

Form1.Image1.Visible := False;

end;

 

Procedure Form1.DbNavigator1Click(Sender:TObject; Button:TNavigateBtn);

begin

case Button of

nbInsert: begin

Form1.Image1.Visible := False;

Form1.DbEdit5.Visible := true;

Form1.Label5.Visible := true;

end;

nbEdit begin

Form1.DbEdit5.Visible := true;

Form1.Label5.Visible := true;

end;

end;

end;

 

 

ADO ADOQuery

 

 

SQL (Structured Query Language)

 
 
· · ·

 


SELECT <Список выбора>

FROM <Источник выбора>

[WHERE <Условия отбора>]

[GROUP BY <Виды группировки>]

 

Рис. 64

СТУДЕНТЫ

ФИО Семестр Экзамен1 Экзамен2 Экзамен3
         
         

 

SELECT ФИО, Семестр, Экзамен1

FROM СТУДЕНТЫ

 

SELECT ФИО, Семестр, (Экзамен1+ Экзамен2 + Экзамен3)/3

FROM СТУДЕНТЫ

 

SELECT ФИО, Семестр, (Экзамен1+ Экзамен2 + Экзамен3)/3 AS Средняя оценка

FROM СТУДЕНТЫ

 

SELECT ФИО, Семестр, Средняя оценка = (Экзамен1+ Экзамен2 + Экзамен3)/3

FROM СТУДЕНТЫ

 

 

FROM СТУДЕНТЫ

SELECT ФИО, Экзамен1, Экзамен2, Экзамен3

FROM СТУДЕНТЫ

WHERE Семестр = 3

 

 

SELECT ФИО

FROM СТУДЕНТЫ

WHERE Экзамен2 IS NULL

 

 

IS NOT NULL

 

 

GROUP BY Семестр

             
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
 
 
   
 
 
 
   
 
   
 
 
 
   
 
 
 
   

 

 


SELECT

 

¨AVG()

¨ COUNT()

¨ MAX()

¨ MIN()

¨ SUM()

 

SELECT Семестр, AVG(Экзамен1)

FROM СТУДЕНТЫ

GROUP BY Семестр

 

SELECT Семестр, AVG((Экзамен1+ Экзамен2 + Экзамен3)/3)

FROM СТУДЕНТЫ

GROUP BY Семестр

 

SQL Builder

 

 


Поделиться:

Дата добавления: 2015-09-13; просмотров: 55; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты