Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

TMiYaP

.pdf
Скачиваний:
6
Добавлен:
01.06.2015
Размер:
508.85 Кб
Скачать

SELECTGames.games

FROM Games where game like `*es*`

Like – подобный.

Будут отбираться все те записи, которые в указанных строках подстроки `*…*`

Фамилии с буквы И`и*` `И_` любой одиночный символ или `И?`

INSERTINTO – команда, позволяющая записать в таблицу одну строку.

INSERT INTO Games (Game, IDGamer1,IDGamer2, MatchDateWinner) VALUES (`football`, 2, 1, `2012-01-12`,1)

Если нужно пропустить какое-то значение использовать NULL.

UPDATE – инструкция обновления. Задает имя таблицы, которое нужно обновить SET – восстановить.

UPDATEGames

SET Winner=2

WHERE (Game=` football`)

Обновлены все записи, где в поле Gameстоит футбол.

DELETE FROM Games

WHERE (Game=` golf`)

В SQLнет команды восстановления, УДАЛИТСЯ ВСЁ ТО, ЧТО НАХОДИТСЯ В ТАБЛИЦЕ

DROPTABLEудаляет саму таблицу.

SQLне дает возможности восстановить данные после удаления.

Классы .NET для работы с БД.

ODBC

ADO

Классы.

Odbc Connection StringBuilder

OdbcCommandпредназначен для хранения SQLвыражений и инициирования их выполнения.

OdbcDataReader – класс для чтения результатов SQL – запроса.

Строка соединения с БД

Исключение ODBCEexeption

Многие методы классов для работы с БД выбрасывают исключения. Такой механизм вполне уместен в данном случае, поскольку большинство операций имеют высокую значимость.

Например метод openможет не установить соединение, из-за чего дальнейшая работа программы становится опасной. Обработка исключений в библиотеке .NETстроится на свойствах и методах класса ODBCEexeption. Всякий метод библиотеки, выбрасывающей исключение данного класса, заполняет информацией его свойства. Именно эти данные должны использоваться для диагностики опасной ситуации.

Некоторые свойства ODBCEexeption дают возможность получить детальную информацию о возникшей ситуации: свойства ErrorCodeдает ссылку на таблицу кодов ошибок системы ODBC,свойство Messageсодержит текстовое сообщение об ошибке.

Создавая собственные исключения в программе следует разрабатывать классы исключения, которые наследуют код существующей системы классов исключений библиотеки .NET.

Выполнение команд SQL

Если соединение установлено, по нему можно отправлять SQLзапросы (команды). В библиотеке .NETдля манипулирования запросами используется OdbcCommand.

Объект OdbcCommand имеет кроме конструктора по умолчанию, конструктор с параметром типа String.Эта строка является SQL – запросом. Класс не проверяет корректность строки запроса.

Свойство Collection должно быть инициализированноодним из соединений класса OdbcConnection.

Если соединение не установлено, объект Commandсамостоятельно вызовет метод openобъекта соединения.

Для получения результатов запроса библиотека использует объекты класса OdbcDataReader.Данный класс дает возможность считывать очередную запись по запросу и получать из этого потока данных значения отдельных полей, преобразованных к типам библиотеки.

ВклассеOdbcCommandестьметодExecuteReader,который отправляет строку запроса источнику и возвращает указатель на экземпляр Reader. Данная операция является опасной, поскольку покрайне мере может быть синтаксически или семантически некорректной.

Метод Readобеспечивают считывание текущей записи в Reader. Операция потенциально считается опасной, поскольку может нарушиться

соединение, курсор БД окажется вне отобранных записей. (метод Readвыбрасывает исключения)

Последовательные вызовы Readведут к перемещению курсора к следующей записи.

Программа может получить любое из полей в типизированном виде с помощью методов Get…, имеющихся в классе Reader. Каждый из методов в качестве параметров получает номер поля в нумерации от нуля.

Соответственно наименованию метода выполняется преобразование содержимого поля в указанный тип. НапримерGetString (0) преобразует содержимое первого поля в тип Stringи возвращает в качестве результата.

Выполнение агрегатной функции.

Для SQLзапросов, возвращающих агрегированные значения в классе ODBCommandможет быть использован метод ExecuteScalar ( ).Этот метод возвращает значение скалярное, которое можно преобразовать сразу в требуемый тип.

Добавить запись.

Для запросов на добавление или обновление записей в классе ODBCommand существует метод ExecuteNonQuery ( ). Этот метод не возвращает Reader,а возвращает число записей, которые были обработаны отправленным запросом. Указанный метод используется для отправки инструкций

INSERTи UPDATA.

Использование объектов Adapter и DataSet.

Функции

DataSet

Adapter

программы

 

 

Connection

В библиотеке .NETимеются классы для организации работы с источником данных без удерживания соединения в течение длительного времени.

Используется объект класса Adapter, который способен самостоятельно считывать данные из источника через соединение и предоставлять программе эти данные в виде виртуальных таблиц. Эти таблицы представляются таблицами объекта DataSet.Программа пользователя получает таблицы и манипулирует ими, при этом соединение с источником закрыто. В случае необходимости записи обновленных данных вызывается соответствующий метод Adapter-a.

DataGridViewпредставляет таблицу как в Access.

Класс DataSetпозволяет создавать таблицы данных в оперативной памяти. Эти таблицы существуют в течение времени работы программы. Их сохранение во внешнем источнике может быть выполнено с помощью

Adapter-a.

В VisualStudioпри использовании некоторых элементов управления, таких как, например, DataGridViewсреда автоматически генерирует классы адаптера.

Адаптер имеет два метода Updateи Fill.

Вызов метода Fillинициирует считывание данных из внешней таблицы и загрузку этой таблицы в память. Метод Updateпереносит изменения, сделанные в таблице в памяти во внешний файл.

Достоинством использования классов Adapter-a и классов DataSet является возможность редактировать данные в автономном режиме, не удерживая соединением с источником данных.

Поскольку соединение разрывается, повышается безопасность сетевого взаимодействия. При этом снижается безопасность ввода и модификации данных. В частности, введенные данные могут быть некорректными, кроме того, соединение повторно может быть не восстановлено и данные будут утеряны.

Технология программирования графических изображений.

Факторы визуализации:

Цвет

Реалистичность Темп обновления

Аппаратные настройки ускорения Управление многогранным отображением Вывод на печатающее устройство

Любая программа обеспечивает визуализацию при взаимодействии с пользователем. Эта визуализация может носить характер либо командного взаимодействия, либо взаимодействия через графические образы.

По затратам ресурсов графический способ гораздо более требователен. Принимая решение о его использовании, необходимо оценивать ресурсы оборудования, а котором будет исполняться программа. Имеет значение не только размер плоскости отображения, но и встроенная аппаратура для поддержки графики. При недостаточности ресурсов качество графического отображения будет неудовлетворительным.

Цвет любого изображения задается определенным количеством разрядов. Минимально их может быть 1 разряд, максимально на практике не больше 24 бит, более высокое число разрядов дает возможность передать большее число оттенков цвета, однако любое изображение при этом потребует больше памяти для хранения. Чем выше число оттенков, тем более реалистично изображение.

Темп обновления изображений определяется системой организации компьютера. Обычно в оперативной памяти имеется область, в которой каждому пикселю устройства отображения соответствует группа байт. Адаптер экрана является устройством, которое в режиме прерывания сканирует видео-память и соответственно образам изменяет состояние пикселов. Эта скорость является тем пределом, выше которого программно перейти невозможно. Эта скорость может быть изменена только настройкой адаптера.

Вывод на печатающее устройство с точки зрения современных библиотек графики ничем принципиально не отличается от вывода на экран. Графические изображения создаются программами в контекстах абстрактных объектах для рисования. Чтобы напечатать текст либо графическое изображение программа должна построить в контексте принтерографическое изображение.

Растровая и векторная графика.

Различают графику растровую и векторную. Различия между ними связаны со способами программного построения изображений, а также форматом хранения описаний изображений файлов. Программирование на уровне растровой графики заключается в изменении состоянии отдельных пикселов изображений. При этом возможны групповые операции переноса, положения больших групп пикселов. Такие приемы программирования графики чаще используются при манипулировании фотореалистичными изображениями. Другой подход к построению изображений это использование геометрических фигур.

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

*bmpwmf tifdxfвекторные форматы jpegcdr

png

.

.

.

Растровые форматы

Контекст устройства

Виртуальный объект

Драйвер Реальный объект

Контексты устройств создаются на основе принципа виртуализации. Реальное графическое устройство отображения ( принтер) не доступны для работающей программы. Вывод изображения осуществляется через драйвер устройства. Драйвер принимает изображениев абстрактном контексте и переносит их на физическое устройство соответственно принципу его работы. Считается, что драйвер соответствует этому устройству. Программа таким образом освобождается от деталей вывода реального изображения.

Средства для работы с графикой в .NET.

Графические построения осуществляются программой, реализуются через использование свойства метода объекта graphics.

Границы области рисования не имеют абсолютных значений, т.е. создаваться изображения могут в любой области контекста, но при этом отрисовываться на устройства отображения может только конкретный фрагмент.

Вотличие от границ размещающая способность контекста всегда фиксирована. В классе graphics свойства DpiX, DpiYпоказывают число точек на дюйм, которая определяет максимальное разрешение по горизонтали и вертикали.

Из-за ограниченности разрешающей способности визуальное представление данных может различаться для разных контекстов и разных масштабах представления. Это различие может порождать риск визуального восприятия.

ScalePage – коэффициент масштабирования изображения, координаты всех точек домножаются на указанное значение, тем самым оно увеличивается или уменьшается.

Clip – свойство контекста, определяющее координаты прямоугольной области, за пределами которой графические объекты никогда не создаются.

VisibleClipBound – границы видимой области изображения в отличие от Clipневидимая часть может содержать графический объект. Область также прямоугольная.

Ряд свойств контекста позволяют задать параметры качества отрисовки. Пример, режимы сглаживания линии отображения текста его коррекции.

Вклассе Graphicsесть методы для отрисовки геометрических примитивов и растровых объектов.

Методы для отрисовки геометрических примитивов в качестве параметра принимают числовые коэффициенты контекста, эти координаты можно нормировать (смещать по горизонтали, вертикали, домножать на постоянные коэффициенты). Обязательным параметром является Pen(ручка).

Объект класса Penдает возможность отрисовывать графический примитив разными способами. Они касаются применения цвета, формы (прерывистая, прямая), а также текстуры фонового заполнения.

Методы для обработки растровой графики в библиотеке

.NETпозволяют копировать фрагмент изображения в память, строить фрагмент изображения, находящийся в памяти в требуемом месте, в нужном масштабе.

CopyFromScreen – метод копирования фрагмента

DrowImage Fill – закрасить

Семейство методов заполнения замкнутых областей начинается с префикса Fill. Область может быть задана либо набором точек, либо «плавной» кривой со сложными сегментами (эллипс).

FillPolygon – закрасить Polygon.

Имя элемента_Pain(…)

Программный код построения изображений помещается вобработчик события перерисовки (Paint). Все графические элементы Windowsреагируют на вызов обработчика Paint. Эти вызовы происходят автоматически, всякий раз когда ОС обнаруживает перекомпоновку экрана. Оконная функция приложения получает уведомление и вызывает при необходимости обработчик того элемента, для которого в программе есть код перерисовки.

Размещая программный код в обработчикахPaintнеобходимо учитывать, что он вызывается всякий раз при изменении состояния графического изображения в целом. Если код требует многовременных работа приложения в целом замедляется.

При выводе на принтер необходимо учитывать то, что графическое изображение выводится в виде задания на печать, отличие задания в последовательном характере вывода. Принтер может быть не готов в частности к печати и задания помещаются в очередь.

Очередь – системный объект, в котором выполняются операции, не имеющие отношения к графике. В библиотеке программирования инкапсулируют подготовку задания на печать, оставляя для программирования только методы для подготовки графического изображения и его отправки диспетчеру задач.

Print Document1 _ Print Page (…)

В .NETсоздается обработчик, который в качестве аргумента получает контекст принтера в этом обработчике, получаемый программный код, формирующий изображение для вывода на печать.

Метод Paintотправляет задание на печать.

Графические изображения в библиотеке строятся в контексте устройства, который создается с помощью класса Graphics.

1)Первый способ получения контекста для рисования это использование обработчика paint.В качестве аргумента ему передается переменная, свойства которой Graphics является контекстом для данного элемента, отображаемого на устройстве.

2)С помощью метода CreateGraphics ( )может быть создан пустой контекст, не соответствующий конкретному элементу управления. При этом этот контекст используется для отображения на текущем графическом устройстве отображения.

3)Контекст можно создать на основе растрового изображения. По заданному растровому изображению. Если программа считала растровое изображение для этого изображения создается контекст через метод FromImagе(…);

Разработка многопоточных программ

Многопоточной считается программа, допускающая параллельное выполнение отдельных частей программного кода.

Большее количество не дает выигрышей, но многоядерные структуры отказоустойчивы.

Необходимость в создании многопоточных программ обусловлена особенностями использования программ и оценкой качества их работы. В задачах управления техническими объектами параллельные программы необходимы для реализации процедур управления по заданному расписанию. Расписание – это периодичность запуска каждой из программ. Программы могут запускаться не только по времени, но и при наступлении определенных событий. В любом случае предполагается, что программный код соответствующих функций, выполняется параллельно. Параллелизм используют для повышения производительности вычислений; если имеется многоядерная вычислительная структура, загрузка отдельных ядер будет более эффективна, если программа в целом имеет многопоточную архитектуру.

Многопоточность используется для повышения надѐжности работы системы за счет многовариантного исполнения одной и той же задачи на нескольких ядрах.

Решить распараллеливается ли программа можно, анализируя связи по данным и по управлению в алгоритме решения задачи. Зависимость по данным выражается в том, что текущий результат может быть получен только если готовы результаты предыдущей операции. Связь по управлению имеет место в том случае, когда логика работы одного фрагмента программы зависит от логики другого.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]