Главная » Просмотр файлов » Задание8_Работа_с_БД

Задание8_Работа_с_БД (1076744), страница 6

Файл №1076744 Задание8_Работа_с_БД (Лабораторная работа №8) 6 страницаЗадание8_Работа_с_БД (1076744) страница 62018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

SQL.Add('FROM school.db');

SQL.Add('WHERE');

SQL.Add('(Fam = "' + fam + '")');

SQL.Add('ORDER BY Name, Fam');

Open; // активизируем выполнение запроса

end;

Следующая программа, ее текст приведен в листинге 2, а диалоговое ок­но — на рис. 26, демонстрирует возможность изменения запроса, точнее, критерия запроса, во время работы программы. Программа обеспечивает вывод как всего списка учеников, так и его части. Например, посредством выполнения запроса выводится информация только о конкретном ученике.

Для просмотра базы данных и результата выполнения запроса используется компонент DBGrid1, который через компонент DataSource1 взаимодействует с компонентом Table1 (при просмотре всей базы данных) или с компонен­том Query (при просмотре результата выполнения запроса).

Рис. 17.26. Форма приложения База данных Школа

Листинг 2. Форма приложения База данных Школа

unit school2_;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, DBGrids, Db, DBTables, ExtCtrls, DBCtrls, StdCtrls;

type

TForm1 = class(TForm)

Table1: TTable; // таблица (вся база данных)

Query1: TQuery; // запрос (записи БД, удовлетворяющие критерию выбора)

DataSource1: TDataSource; // источник данных - таблица или запрос

DBGrid1: TDBGrid;//таблица для отображения БД или результата выполнения запроса

DBNavigator1: TDBNavigator;

DBText1: TDBText;

Button1: TButton; // кнопка запрос

Button2: TButton; // кнопка Все записи

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

// щелчок на кнопке Запрос

procedure TForm1.Button1Click(Sender: TObject);

var

fam: string[30];

begin

fam:=InputBox('Выборка информации из БД',

'Укажите фамилию и щелкните на OK.', '');

if fam <> '' // пользователь ввел фамилию

then

begin

with form1.Query1 do begin

Close; // закрыть файл-результат выполнения предыдущего запроса

SQL.Clear; // удалить текст предыдущего запроса

// записываем новый запрос в свойство SQL

SQL.Add('SELECT Fam, Name, Class');

SQL.Add('FROM ":Школа:school.db"');

SQL.Add('WHERE');

SQL.Add('(Fam = "'+ fam + '")');

SQL.Add('ORDER BY Name, Fam');

Open; // активизируем выполнение запроса

end;

{ *** другой вариант изменения критерия запроса

begin

Query1.Close;

Query1.SQL[3]:='(Fam="'+ fam + '")';

Query1.Open;

DataSource1.DataSet:=Query1;

end;

}

if Query1.RecordCount <> 0 then

DataSource1.DataSet:=Query1 // отобразить рез-т выполнения запроса

else begin

ShowMessage('В БД нет записей, удовлетворяющих критерию запроса.');

DataSource1.DataSet:=Table1;

end;

end;

end;

// щелчок на кнопке Все записи

procedure TForm1.Button2Click(Sender: TObject);

begin

DataSource1.DataSet:=Table1; // источник данных - таблица

end;

// активизация формы

procedure TForm1.FormActivate(Sender: TObject);

begin

DataSource1.DataSet := Table1;

Table1.Active := True;

end;

end.

Процедура TForml.Button1Click запускается щелчком кнопки Запрос. Она принимает от пользователя строку (фамилии) и записью (добавлением) строк в свойство sql формирует текст запроса. Затем эта процедура вызо­вом метода Open активизирует выполнение запроса.

Следует обратить внимание на то, что перед изменением свойства SQL-запрос должен быть закрыт при помощи метода Close (здесь надо вспом­нить, что результат выполнения запроса — это файл данных (таблица), ко­торый создается в результате выполнения запроса).

Процедура TForm1.Button2Click, которая запускается щелчком кнопки Все записи, устанавливает в качестве источника данных для компонента DataSource1 компонент Table1, тем самым обеспечивая переход в режим просмотра всей базы данных.

Если запрос записан в свойство sql во время разработки формы приложе­ния, то во время работы программы критерий запроса можно изменить простой заменой соответствующей строки текста запроса.

Например, для запроса

SELECT DISTINCT Fam, Name, Class

FROM ":Школа:school.db"

WHERE

(Class= ‘10a’) ORDER BY Name, Fam

инструкция замены критерия запроса может быть такой:

forml.Queryl.SQL[3]:='(Fam=”’ + fam+ '")'

Следует обратить внимание на то, что свойство sql является структурой типа TStrings, в которой строки нумеруются с нуля.

Характеристики

Тип файла
Документ
Размер
934 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Лабораторная работа №8
8
8_Питер
Data
peterburg.cfg
peterburg.dof
peterburg.dpr
peterburg.exe
peterburg.res
peterburg_.dcu
peterburg_.ddp
peterburg_.dfm
peterburg_.pas
peterburg_.~ddp
peterburg_.~dfm
peterburg_.~pas
8_школа
data
school.cfg
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее