Содержание
Содержание
Введение3
1. История развития MS SQL Server4
2. Базы данных SQL Server7
2.1. Типы баз данных7
2.2. Объекты баз данных8
2.3. Обращение к объектам SQL Server9
2.4. Системные таблицы11
3. SQL13
4. Transact-SQL19
5. Администрирование Microsoft SQL Server26
5.1. Автоматизация часто выполняемых задач26
5.2. Объявление шагов работы28
5.3. Запланированные работы30
5.4. Создание операторов для извещения30
5.5. Просмотр и конфигурирование истории работ32
6. Управление безопасностью приложения34
Заключение38
Глоссарий39
Библиография41
Приложение 142
Введение
Всякая профессиональная деятельность, так или иначе связана с информацией, с организацией ее сбора, хранения, выборки. Можно сказать, что неотъемлемой частью повседневной жизни стали базы данных, для поддержки которых требуется некоторый организационный метод, или механизм. Такой механизм называется системой управления базами данных (СУБД).
База данных (БД) совместно используемый набор логически связанных данных (и их описание), предназначенный для удовлетворения информационных потребностей организации.
СУБД (система управления базами данных) программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ [1].
Системы управления базами данных существуют уже много лет, многие из них обязаны своим происхождением системам с неструктурированными файлами на больших ЭВМ. Наряду с общепринятыми современными технологиями в области систем управления базами данных начинают появляться новые направления, что обусловлено требованиями растущего бизнеса, все увеличивающимися объемами корпоративных данных и, конечно же, влиянием технологий Internet.
Одной из популярных СУБД является MS SQL Server. Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft.
1.История MS SQL Server
Исходный код MS SQL Server (до версии 7.0) основывался на коде Sybase SQL Server, и это позволило Microsoft выйти на рынок баз данных для предприятий, где конкурировали Oracle, IBM, и, позже, сама Sybase. Microsoft, Sybase и Ashton-Tate первоначально объединились для созданя и выпуска на рынок первой версии программы, получившей название SQL Server 1.0 для OS/2 (около 1989 года), которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix, VMS и др. Microsoft SQL Server 4.2 был выпущен в 1992 году и входил в состав операционной системы Microsoft OS/2 версии 1.3. Официальный релиз Microsoft SQL Server версии 4.21 для ОС Windows NT состоялся одновременно с релизом самой Windows NT (версии 3.1). Microsoft SQL Server 6.0 был первой версией SQL Server, созданной исключительно для архитектуры NT и без участия в процессе разработки Sybase.
К тому времени, как вышла на рынок ОС Windows NT, Sybase и Microsoft разошлись и следовали собственным моделям программного продукта и маркетинговым схемам. Microsoft добивалась исключительных прав на все версии SQL Server для Windows. Позже Sybase изменила название своего продукта на Adaptive Server Enterprise во избежание путаницы с Microsoft SQL Server. До 1994 года Microsoft получила от Sybase три уведомления об авторских правах как намёк на происхождение Microsoft SQL Server.
После разделения компании сделали несколько самостоятельных релизов программ. SQL Server 7.0 был первым сервером баз данных с настоящим пользовательским графическим интерфейсом администрирования. Для устранения претензий со стороны Sybase в нарушении авторских прав, весь наследуемый код в седьмой версии был переписан.
Переход с SQL Server 7,0 по SQL Server 2000 имеет более эволюционный шаг, не влечет за собой те же огромные изменения, которые были внесены в перейти от 6,5 к 7,0. Напротив, SQL Server 2000 построено по нарастающей на новый код базы, которая была создана в 7,0 версии. Начиная с SQL Server 2000, Microsoft начала выпуска обновления основных выпуск SQL Server в следующем году, начиная с XML в SQL Server Web Выпуск 1, в котором появилось несколько XML функций, включая возможность получить набор результатов как XML документ. В следующем году они переименовали в Интернете версии к более сжато названием SQLXML 2,0, который, помимо прочего, добавлена возможность обновления базы данных SQL Server с использованием XML updategrams. Это было быстро последовало в SQLXML 3,0 веб версии, которая включает способность подвергать хранимых процедур, как веб-службы. Текущая версия Microsoft SQL Server 2005 была представлена в ноябре 2005 года. Запуск версии происходил параллельно запуску Visual Studio 2005. Существует также «урезанная» версия Microsoft SQL Server Microsoft SQL Server Express; она доступна для скачивания и свободно распространяется с использующим её программным обеспечением.
С момента выпуска предыдущей версии SQL Server (SQL Server 2000) было осуществлено развитие интегрированной среды разработки и ряда дополнительных подсистем, входящих в состав SQL Server 2005. Изменения коснулись реализации технологии ETL (извлечение, преобразование и загрузка данных), входящей в состав компонента SQL Server Integration Services (SSIS), сервера оповещения, средств аналитической обработки многомерных моделей данных (OLAP) и сбора релевантной информации (обе службы входят в состав Microsoft Analysis Services), а также нескольких служб сообщений, а именно Service Broker и Notification Services. Помимо этого, были произведены улучшения в производительности.
Хронология развития истории SQL Server:
o1987 — Sybase версии SQL Server для UNIX.
o1988 — Microsoft, Sybase и Aston — Тейт порт SQL Server в OS / 2.
o1989 — Microsoft, Sybase и Aston — Тейт версии SQL Server 1,0 по OS / 2.
o1990 — SQL Server 1,1 выпускается с поддержкой Windows 3,0 клиентов.
o1991 — Microsoft и IBM конце совместной разработке OS / 2.
o1992 — Microsoft SQL Server 4,2 по 16 — разрядной ОС / 2 1,3 освобождается.
o1992 — Microsoft и Sybase SQL Server порта для Windows NT.
o1993 — Windows NT 3,1 освобождается.
o1993 — Microsoft и Sybase выпуска версии 4,2 в SQL Server для Windows NT.
o1994 — Microsoft и Sybase совместно развитие SQL Server заканчивается. Microsoft продолжает разработку Windows версии SQL Server. Sybase продолжает развивать UNIX версии SQL Server.
o1995 — Microsoft Пресс-релизы версии 6,0 в SQL Server.
o1996 — Microsoft Пресс-релизы версии 6,5 в SQL Server.
o1998 — Microsoft Пресс-релизы версии 7,0 в SQL Server.
o2001 — Microsoft XML версии для SQL Server Web Выпуск 1 (скачать).
o2002 — Microsoft Пресс-релизы SQLXML 2.0 (переименована из XML для SQL Server).
o2002 — Microsoft Пресс-релизы SQLXML 3,0.
o2005 — Microsoft версии SQL Server 2005 по 7 ноября 2005 года.
2. Базы данных SQL Server
2.1. Типы баз данных
Каждый SQL Server содержит два типа баз данных: системные и пользовательские. Системные базы данных содержат информацию обо всём SQL Server. SQL Server использует системные базы данных для использования и управления системой. Пользовательские базы данных это базы данных созданные пользователем [2].
Когда SQL Server установлен, SQL Server Setup создаёт системные базы данных и образцы пользовательских баз данных. Следующие базы данных существуют в каждом SQL Server.
Таблица 1
Существующие базы данных в каждом SQL Server
База данныхОписание
masterУправляет пользовательскими базами данных и работой самого SQL Server с помощью хранения записей о такой информации как пользовательские учётные записи, конфигурируемые переменные окружения и сообщения системных ошибок.
modelСодержит шаблоны и прототипы для новых пользовательских баз данных
tempdbОбеспечивает место хранения для временных таблиц и других, необходимых во время работы, временных данных.
msdbОбеспечивает место хранения для информации о запланированных (Schedule) заданиях и истории работ.
distributionХранит историю и данные транзакций при репликации.
pubsХранит образцы баз данных для учебных целей.
NorthwindХранит образцы баз данных для учебных целей.
Выдержка из текста работы
- Введение 2
- 1 Постановка задачи 3
- 2 Выбор средств реализации 4
- 3 Описание логики работы приложения 6
- 4 Разработка программного обеспечения и описание пользовательского интерфейса 8
- 4.1 Таблица SQL 8
- 4.2 Главная форма MainForm 9
- 4.3 Форма просмотра анкет Infoform 12
- Заключение 14
- Список используемой литературы 15
- Приложение А (обязательное) 16
Разработка системы сохранения результатов анкетирования в базе данных MS SQL Server.
Основные требования: Вопросов в анкете должно быть не менее 15. Типов данных для вводимых ответов должно быть не менее 3.
Общие требования:
1. При выборе элемента меню о программе, должно выводиться модальное диалоговое окно со сведениями о программе и авторе программы.
2. Тип приложения: GUI
1) procedure ShowMessage ( const Text : string ) — предназначена для вывода диалогового окна, с одной единственной кнопкой «ОК». При нажатии на эту кнопку, окно закрывается, и программа продолжает свое выполнение. Эта процедура носит информационный характер. Часто ее используют для вывода промежуточных или проверочных значений. Процедуру Showmessage(), в отличие от функции MessageBox(), нельзя изменить: добавить кнопки, иконку, обработать события при нажатии кнопок. Процедура Showmessage() принимает на вход один параметр типа String, значение которого выводит в диалоговое окно;
2) function MessageBox(Parent: HWnd; Txt, Caption: PChar; TextType: Word): Integer;
Создает и отображает блок диалога, содержащий указанное сообщение и заголовок, а также пpедопpеделенные пиктограммы и текстовые кнопки, в соответствии с паpаметpом TexType.
Параметры:
Parent: Окно, владеющее блоком сообщений. Txt: Отображаемое сообщение (заканчивающееся пустым символом). Caption: Заголовок блока диалога (заканчивающийся пустым символом) или nil для «Error» («Ошибка»). TextType: Одна или комбинация констант mb_.
3) function StrToDateTime ( const DateTime : string ) : TDateTime; преобразует строки DateTime в значение типа TdateTime.
4) function StrToInt ( IntegerString : string ) : Integer; — конвертирует строку с целым значением — IntegerString, такую как ‘123’, в целое Integer.
Основные используемые команды и запросы языка SQL:
1) Команда SELECT — используется для выборки данных из базы данных.
SELECT [Предикат] Поля FROM Таблицы [IN БазаДанных] [WHERE …] [GROUP BY …] [HAVING …] [ORDER BY …];
2) Команда UPDATE посылает запрос на изменение записи.
UPDATE Таблица SET НовоеЗначение WHERE …;
3) Команда DELETE посылает запрос на удаление записей из таблицы.
DELETE [Таблица.*] FROM Таблица WHERE …;
4) Команда INSERT INTO предназначена для добавления одной или нескольких записей в конец таблицы.
INSERT INTO ТаблицаНазначения [(Поля)] VALUES (Значения);
Для работы с базой данных Microsoft SQL были подключены следующие модули: DB, ADODB, Grids, DBGrids.
4.1 Таблица SQL
Для сохранения результатов анкетирования, в среде Microsoft SQL Server Management Studio создали базу Anketa. Чтобы связаться с базой прописали в каждом элементе типа TadoQuery приложения
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Anketa;Data Source=М-ПК
Создали таблицу Table_1 в нашей базе данных.
Рисунок 1 — Таблица Table1
4.2 Главная форма MainForm
Листинг программы приведен в приложении А.
Для работы с базой SQL на форме располагаются элементы DataSource1: TDataSource, ADO: TADOQuery, DBGrid1: TDBGrid.
Согласно изложенному выше плану работы приложения был создан модуль Mform, в котором описана форма MainForm (рисунок 2). На этой форме размещены 4 панели,содержащие элементы для ввода данных анкетирования.
Для большей удобности и экономии пространсво было создано MainMenu1,содержащее 2 вкладки: «Анкета», «Справка».
Вкладка «Анкета» имеет 3 пункта:
«Заполнить новую»-делает активной первую панель,скрывая все остальные,очищатет все элементы ввода для ввода новых данных;
«Посмотреть заполненные»-показывает модальное окно InfoForm, содержащее информацию об анкетируемых(рисунок 4);
«Выход»-осуществляет выход из программы.
Вкладка «Справка» имеет один пункт:
«О программе»- показывает модальное окно AboutForm с информацией о программе и ее авторе(рисунок 3).
Для того чтобы открываемое окно было модальным вызывается функция showmodal соответствующего экземпляра формы.
Закрытие и уничтожение модальной формы осуществляется с помощью процедуры Release, либо же формы, свойству соответствующей кнопки выхода ModalResult присваивается значение mrCancel.
Навигация между нужными панелями выполняется при помощи кнопок
«Назад» и «Дальше». При работе с первой панелью кнопка «Назад» в свойстве vision имеет значение false, при работе с остальными панелями true.
При работе с последней панелью кнопка «Дальше» в свойстве vision имеет значение false, при работе с остальными панелями true.
Также описана процедура:
procedure BdataKeyPress(Key:Char):Char; — возвращает цифру, передаваемую как параметр, если она входит в алфавит, или же является специальным знаком клавиши удаления #8, иначе возвращает “пустой” символ #0 .Данная процедура используются для предотвращения некорректного ввода в поле TEdit (например, при вводе букв в поле ввода даты рождения анкетируемого).
После создания формы анкетирования переменной povtorSave: boolean этой формы присваивается значение false, это означает, что происходит новое заполнение анкеты.
После правильного заполнения полей,при просмотре последней панели,кнопка «Сохранить результат» становится активной.
После ее нажатия начинается проверка заполнения,если же поле не было заполнена данные не будут сохранены и программа уведомит пользователя об этом.Далее происходит сохранение данных в базу SQL и переменной povtorSave присвоиться значение true,это означает, что если мы не выберем в меню пункт «Новая анкета»,то при следующем сохранении данных мы будем видеть диалоговое окно с запросом наших намерений.
Рисунок 2.1 — Главная форма приложения.
Рисунок 2.2 — Главная форма приложения.
программа база данные анкета
Рисунок 2.3 — Главная форма приложения.
Рисунок 2.4 — Главная форма приложения.
Рисунок 3 — Форма «О программе».
4.3 Форма просмотра анкет Infoform
На рисунке 4 представлена данная форма.
Для работы с базой SQL на форме располагаются элементы DataSource1: TDataSource, ADO: TADOQuery, DBGrid1: TDBGrid.
При создании данной формы происходит заполнение 1 столбца InfoGrid:TstringGrid и подсчет количества анкет. Количество анкет оображается в Label2.
Для осуществления перехода к определенной анкете,при нажатии кнопки Button1,происходит перемещение по таблице до нужной анкеты и данные выводятся в InfoGrid при помощи процедуры SelectInfo.
Если был введен ID несуществующей анкеты,появится окно предупреждающее об этом и окно ввода ID будет очищено.
При нажатии на кнопку «Предыдущая» происходит переход к предыдущей анкете,которая будет показана в InfoGrid.
При нажатии на кнопку «Следующая» происходит переход к следующей анкете,которая будет показана в InfoGrid.
Рисунок 4 — Форма просмотра анкет.
Приложение А (обязательное)
Листинг программы
program Anketa;
uses
Forms,
MainForm in ‘MainForm.pas’ {Form1},
Unit1 in ‘Unit1.pas’ {AboutForm},
Unit2 in ‘Unit2.pas’ {InfoForm};
{$R *.res}
begin
Application.Initialize;
Application.Title := ‘Анкета’;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TAboutForm, AboutForm);
Application.Run;
end.
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB,
ExtCtrls, ComCtrls, Menus, Vcl.XPMan;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
ADO: TADOQuery;
DBGrid1: TDBGrid;
SaveButton: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
NameEdit: TEdit;
LNameEdit: TEdit;
MNameEdit: TEdit;
PolGroup: TRadioGroup;
Bdata: TLabeledEdit;
Professia: TLabeledEdit;
TimeGameL: TLabel;
TimeGameBox: TComboBox;
OpitGameL: TLabel;
OpitGameBox: TComboBox;
PlatformerL: TLabel;
PlatformerBox: TComboBox;
ConfigPCEdit: TRichEdit;
ConfigPCL: TLabel;
Game: TLabeledEdit;
GameInfoEdit: TRichEdit;
GameInfoL: TLabel;
DonatBox: TComboBox;
DonatL: TLabel;
FilmEdit: TLabeledEdit;
InfoEdit: TRichEdit;
Info: TLabel;
OsL: TLabel;
OSBox: TComboBox;
GanrGame: TLabeledEdit;
Panel1: TPanel;
PristavkaGroup: TRadioGroup;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
PriorButton: TButton;
NextButton: TButton;
MainMenu1: TMainMenu;
Af1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
procedure PriorButtonClick(Sender: TObject);
procedure NextButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SaveButtonClick(Sender: TObject);
procedure BdataKeyPress(Sender: TObject; var Key: Char);
procedure N5Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
id: integer;
end;
Form1: TForm1;
l:integer; //номер активной панели
povtorSave:boolean;
implementation
uses Unit1, Unit2;
{$R *.dfm}
function definitionId: integer;//возвращает значение следующего ID анкеты
begin
Form1.ado.SQL.Clear;
Form1.ado.SQL.Text:=’select id from table_1 ORDER BY id ASC;’;
Form1.ado.open;
Form1.ado.Last;
result:=Form1.ado.Fields[0].value+1;
except result:=1;
end;
end;
procedure NewANKETA;
begin
Form1.FormCreate(Form1);
with Form1 do
begin
NameEdit.Clear;
lNameEdit.Clear;
mNameEdit.Clear;
PolGroup.ItemIndex:=-1;
professia.Clear;
Bdata.Clear;
GanrGame.Clear;
TimeGamebox.ItemIndex:=-1;
OpitGamebox.ItemIndex:=-1;
Donatbox.ItemIndex:=-1;
Platformerbox.ItemIndex:=-1;
PristavkaGroup.ItemIndex:=-1;
Osbox.ItemIndex:=-1;
Game.Clear;
FilmEdit.Clear;
ConfigPCEdit.Clear;
GameInfoEdit.Clear;
InfoEdit.Clear;
Form1.NextButton.Visible:=true;
form1.savebutton.Enabled:=false;
end;
end;
procedure Smena(l:integer);
begin
case l of
1: begin
Form1.Panel1.Visible:=true;
Form1.Panel2.Visible:=false;
Form1.Panel3.Visible:=false;
Form1.Panel4.Visible:=false;
Form1.PriorButton.Visible:=false;
Form1.NextButton.Visible:=true;
end;
2: begin
Form1.Panel1.Visible:=false;
Form1.Panel2.Visible:=true;
Form1.Panel3.Visible:=false;
Form1.Panel4.Visible:=false;
Form1.PriorButton.Visible:=true;
Form1.NextButton.Visible:=true;
end;
3: begin
Form1.Panel1.Visible:=false;
Form1.Panel2.Visible:=false;
Form1.Panel3.Visible:=true;
Form1.Panel4.Visible:=false;
Form1.PriorButton.Visible:=true;
Form1.NextButton.Visible:=true;
end;
4: begin
Form1.Panel1.Visible:=false;
Form1.Panel2.Visible:=false;
Form1.Panel3.Visible:=false;
Form1.Panel4.Visible:=true;
Form1.PriorButton.Visible:=true;
Form1.NextButton.Visible:=false;
form1.savebutton.Enabled:=true;
end;
end;
end;
procedure TForm1.PriorButtonClick(Sender: TObject);
begin
if l>1 then l:=l-1;
smena(l);
end;
procedure TForm1.NextButtonClick(Sender: TObject);
error:boolean;
begin
error:=false;
if l<4 then l:=l+1;
case l of
2: begin
if Polgroup.ItemIndex=-1 then begin ShowMessage(‘Вы не указали пол!’); error:=true; end;
StrToDateTime(Bdata.Text);
except
messagebox(0,’Неверный формат даты!’+#13#10+’Пример правильного ввода ‘+#13#10+ ‘01.01.2012’ ,’Неверная дата’,MB_Ok or MB_ICONERROR);
error:=true;
Bdata.Clear;
end;
if error then l:=1;
end;
3:begin
if TimeGamebox.ItemIndex=-1 then begin ShowMessage(‘Вы не указали сколько времени тратите на игры!’); error:=true; end;
if OpitGamebox.ItemIndex=-1 then begin ShowMessage(‘Вы не указали как вы оцениваете свой игровой опыт!’); error:=true; end;
if Platformerbox.ItemIndex=-1 then begin ShowMessage(‘Вы не указали как относитесь к платформерам!’); error:=true; end;
if Pristavkagroup.ItemIndex=-1 then begin ShowMessage(‘Вы не указали есть ли у вас приставка!’);error:=true; end;
if error then l:=2;
end;
4:begin
if Osbox.ItemIndex=-1 then begin ShowMessage(‘Вы не указали свою ОС!’); error:=true; end;
if error then l:=3;
end;
end;
if Not error then smena(l);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Visible:=true;
Panel2.Visible:=false;
Panel3.Visible:=false;
Panel4.Visible:=false;
PriorButton.Visible:=false;
povtorSave:=false;
l:=1;
form1.savebutton.Enabled:=false;
end;
procedure TForm1.SaveButtonClick(Sender: TObject);
error: boolean;
begin
error:=false;
if Donatbox.ItemIndex=-1 then begin ShowMessage(‘Вы не указали тратите ли вы деньги на игры’); error:=true; end;
if (povtorSave)and(messagebox(0,’Возможно вы пытаетесь сохранить уже существующие данные!’+#13#10+’В этом случае они будут сохранены под новым номером! Продолжить?’,’Повторное сохранение’,MB_YesNo or MB_ICONINFORMATION)=mrNo) then error:=true;
if (not error) then begin
id:=DefinitionId;
ado.SQL.Text:=’insert into table_1 (ID, name, fam,otch,pol,datar,professia,TimeGame,OpitGame, GanrGame, Platformer, OS, ConfigPC, Pristavka, Game, GameInfo, Donat, Film, Info)’;
ado.SQL.add(‘ values (:ID, :name, :fam,:otch,:pol,:datar,:professia,:TimeGame,:OpitGame, :GanrGame, :Platformer, :OS, :ConfigPC, :Pristavka, :Game, :GameInfo, :Donat, :Film, :Info)’);
ado.Parameters.ParamByName(‘name’).value:=NameEdit.Text;
ado.Parameters.ParamByName(‘fam’).value:=lNameEdit.Text;
ado.Parameters.ParamByName(‘otch’).value:=mNameEdit.Text;
ado.Parameters.ParamByName(‘pol’).value:=PolGroup.ItemIndex;
ado.Parameters.ParamByName(‘professia’).value:=professia.Text;
ado.Parameters.ParamByName(‘DataR’).value:=formatdatetime(‘yyyy/mm/dd’,StrToDateTime(Bdata.Text));
ado.Parameters.ParamByName(‘GanrGame’).value:=GanrGame.Text;
ado.Parameters.ParamByName(‘TimeGame’).value:=TimeGamebox.ItemIndex;
ado.Parameters.ParamByName(‘OpitGame’).value:=OpitGamebox.ItemIndex;
ado.Parameters.ParamByName(‘Donat’).value:=Donatbox.ItemIndex;
ado.Parameters.ParamByName(‘Platformer’).value:=Platformerbox.ItemIndex;
ado.Parameters.ParamByName(‘Pristavka’).value:=PristavkaGroup.ItemIndex;
ado.Parameters.ParamByName(‘OS’).value:=OSBox.items[Osbox.ItemIndex];
ado.Parameters.ParamByName(‘Game’).value:=Game.Text;
ado.Parameters.ParamByName(‘film’).value:=FilmEdit.Text;
ado.Parameters.ParamByName(‘ConfigPC’).value:=ConfigPCEdit.Text;
ado.Parameters.ParamByName(‘GameInfo’).value:=GameInfoEdit.Text;
ado.Parameters.ParamByName(‘info’).value:=InfoEdit.Text;
ado.Parameters.ParamByName(‘id’).value:=id;
ado.ExecSQL; povtorSave:=true;
messagebox(0,’Данные успешно сохранены!’,’Сохранение’,MB_Ok or MB_ICONINFORMATION);
except
ShowMessage(‘Ошибка при записи данных!’);
end;
end else messagebox(0,’Данные не сохранены’,’Сохранение’,MB_Ok or MB_ICONERROR);
end;
procedure TForm1.BdataKeyPress(Sender: TObject; var Key: Char);
const
abc: set of char=[‘0′..’9′,#8,’.’];
begin
if (not(key in abc)) then key:=#0;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
AboutForm.ShowModal;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
NewAnketa;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Application.CreateForm(TInfoForm, InfoForm);
InfoForm.ShowModal;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TAboutForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;
AboutForm: TAboutForm;
implementation
{$R *.dfm}
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DB, ADODB, DBGrids;
type
TInfoForm = class(TForm)
InfoGrid: TStringGrid;
PriorButton: TButton;
NextButton: TButton;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADO: TADOQuery;
Label1: TLabel;
CloseButton: TButton;
Label2: TLabel;
Button1: TButton;
Label3: TLabel;
edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure PriorButtonClick(Sender: TObject);
procedure NextButtonClick(Sender: TObject);
procedure CloseButtonClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
InfoForm: TInfoForm;
implementation
uses Mainform;
{$R *.dfm}
procedure SelectInfo;
begin
with InfoForm do
begin
InfoGrid.Cells[1,0]:=ado.FieldByName(‘id’).AsString;
InfoGrid.Cells[1,1]:=ado.FieldByName(‘name’).AsString;
InfoGrid.Cells[1,2]:=ado.FieldByName(‘fam’).AsString;
InfoGrid.Cells[1,3]:=ado.FieldByName(‘Otch’).AsString;
if ado.FieldByName(‘pol’).AsBoolean then InfoGrid.Cells[1,4]:=’Женский’ else InfoGrid.Cells[1,4]:=’Мужской’;