Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектЛекций.doc
Скачиваний:
71
Добавлен:
14.05.2015
Размер:
1.26 Mб
Скачать

Программирование в формах.

Определяя имя для поля, элемента управления или объекта, полезно проверить, не совпадает ли это имя с именем свойства или другого элемента, используемого Microsoft Access; в противном случае иногда могут возникать неверные результаты. Например, при ссылке на значение поля «Name» в таблице «NameInfo» с использованием конструкции NameInfo.Name будет возвращаться значение свойства таблицы Имя (Name), а не значение поля «Name».

Простейшим способом обойти неопределенность в именах является использование оператора ! вместо оператора . (точка) в ссылках на значения полей, элементов управления и объектов:

[NameInfo]![Name]

Пример запроса, созданного как текстовая строка плюс значения текстовых переменных. Запрос выбирает из таблицы «_v2» в таблицу «_v4» те записи, значение поля nn в которых больше нуля и меньше значения переменной целого типа var_numb.

Dim S As String

S = "SELECT * INTO [_v2] FROM [_v4] WHERE (([_v4].nn<=" + Str(var_numb) + _

")and([_v4].nn>0))"

DoCmd.RunSQL S

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

Forms![Моя форма].Refresh

Работа с элементом «поле со списком» (Элемент управления на странице доступа к данным, щелчок по кнопке-стрелке которого приводит к раскрытию списка, в котором можно выбрать значение или ввести его прямо в поле с клавиатуры).

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

Установка исходных данных для поля (текст в строке свойств «источник строк»):

SELECT countries.country, countries.name_rus, countries.currency_rus FROM countries;

При этом из трёх столбцов видимым является только второй.

Установка начального значения для поля со списком из программы:

Private Sub Form_Open(Cancel As Integer)

var_country.SetFocus

var_country.SelText = "Россия"

End Sub

Реакция на событие «После обновления»:

Private Sub var_country_AfterUpdate()

info_1.Caption = var_country.Column(1)

Forms![Основная форма].Refresh

End Sub

Работа с элементом «Диаграмма»

Microsoft Graph позволяет изменить расположение компонентов диаграммы (таких как легенда), формат надписей, цвета и узоры, а также масштабы по осям. Чтобы изменить данные, используемые для создания диаграммы, следует изменить базовую таблицу или другой источник записей, либо запрос, указанный в свойстве Источник строк (RowSource).

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

Субд MySql

MySQL – клиент-серверная система управления реляционными базами данных, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов. Разработкой и сопровождением системы занимается компания MySQL AB (Швеция, David Axmark).

Характеристики СУБД

  • SQL СУБД (реляционная), быстрая, но не оптимизированная под поиска и добавления, если предстоят частые изменения.

  • Стандарты: entry level SQL92, ODBC levels 0-2.

  • Лицензия - GPL/LGPL. Для хостинга лицензия не нужна.

  • Написана на C и C++. Базовая платформа: Solaris 2.7-2.8, SuSE Linux 7.1 (ядро 2.4, ReiserFS), но работает также в других ОС.

  • Многопотоковая.

  • API для C, C++, Java, Eiffel, Perl, PHP, Python, и др.

  • Парольная защита.

  • Таблицы в виде B-tree со сжатием индекса. До 32 индексов на таблицу. До 16 колонок на индекс.

  • По умолчанию MySQL-таблицы имеют максимальный размер около 4 Гб.

  • Записи переменной длины. Есть примеры использования MySQL с 60000 таблиц и 5 миллиардами строк.

  • Поддержка koi8-r и cp1251 (сортировка, сравнение и т.д.).

  • Клиенты могут соединяться по TCP/IP (можно использовать только, если никто не подслушивает) или Unix socket.

Имеются расширения к ANSI SQL92.

Отсутствующие возможности ANSI SQL92:

  • Вложенные подзапросы

  • хранимые процедуры и тригеры (тригеры не планируются совсем)

  • Внешние ключи

  • Представления

Основные модули СУБД

  • mysql – клиентская часть СУБД. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.

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

  • mysqladmin – выполняет административные функции. Данная команда может использоваться для создания баз данных,изменения пароля пользователя (администратор может изменить пароль любому пользователю, а рядовой пользователь – только свой собственный), перезагрузки и остановки сервера, просмотра списка процессов, запущенных на сервере.

  • mysqld – программа является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.

  • mysqldump – программа используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Вы должны убедиться, что в этот момент с базой данных не выполняется никаких других действий.

  • mysqlshow – программа может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных.

Типы данных

BIGINT [(length)] [UNSIGNED] [ZEROFILL]

8 байт целое (если компилятор поддерживает такой тип)

BLOB

Двоичный объект (максимальная длина 65535 байт)

CHAR(NUM)

Строка фиксированной длины (1 <= NUM <= 255)

DATE

Сохраняет информацию о дате. Использует формат "YYYY-MM-DD". Может модифицироваться как строка или число.

Диапазон для этого типа данных от 0000-00-00 до 9999-12-31. Так что "проблема 2000" здесь не стоит. В отличие от TIMESTAMP, DATE принимает годы и в виде двух цифр от 0000 до 0099. Тип DATE имеет длину 4 байта.

DATETIME

Объединение типов DATE и TIME. Тип DATETIME идентичен типу TIMESTAMP со следующими исключениями:

Когда запись вставляется в таблицу, содержащую поля типа DATETIME, поле DATETIME не изменяется.

Диапазон для поля типа DATETIME: '0000-01-01 00:00:00' - '9999-12-31 23:59:59' при использовании в контексте строки, и '00000000000000' - '99991231235959' при использовании в контексте числа.

Тип DATETIME имеет длину 8 байт.

DECIMAL (length,dec)

Десятичное число с плавающей запятой.

DOUBLE [(length,dec)]

Число (4 или 8 байт) двойной точности с максимальной длиной и фиксированном числом десятичных чисел.

FLOAT [(precision)]

Номер с плавающей запятой. FLOAT(4) и FLOAT одиночная точность. FLOAT(8) обеспечивает двойную точность.

FLOAT [(length,decimals)]

Число одиночной точности с максимальной длиной и фиксированном числом десятичных чисел (4 байта).

INT [(length)] [UNSIGNED] [ZEROFILL]

Целое (4 байта).

INTEGER [(length)] [UNSIGNED] [ZEROFILL]

Целое число 4 байта

LONGBLOB

Двоичный объект с максимальной длиной 2**32 байт.

MEDIUMBLOB

Двоичный объект с максимальной длиной 16777216 байт.

MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (3 байта).

REAL [(length,dec)]

Идентично DOUBLE (8 байт).

SMALLINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (2 байта).

TINYBLOB

Двоичный объект с максимальной длиной 255 байт.

TINYINT [(length)] [UNSIGNED] [ZEROFILL]

Целое число (1 байт).

VARCHAR(NUM)

Строка переменной длины (1 <= NUM <= 255)

TIME

Хранит информацию о времени. Использует формат "HH:MM:SS". Может использоваться как строка или число.

Данные типа TIME имеют длину 3 байта.

TIMESTAMP(NUM)

Автоматически изменяется при вставке/обновлении. Имеет формат YYMMDDHHMMSS или YYYYMMDDHHMMSS. Когда используете mysql с ODBC и Access Вы должны использовать значение 14 для NUM, поскольку это заставляет MySQL всегда использовать в годах четыре цифры. Значение 12 заставит MySQL использовать в году две цифры. Значение по умолчанию - 14.

В случае таблиц с несколькими полями TIMESTAMP только первое такое поле будет модифицироваться автоматически.

Физическая организация данных

Каждая база данных находится в своём каталоге, имя которого соответствует имени базы. Каждая таблица находится в отдельном файле <имя таблицы>.MYD, индекс в файле <имя таблицы>.MYI, файл определения таблицы <имя таблицы>.frm

Основные команды MySQL

СУБД MySQL оперирует подмножеством языка SQL, соответствующим спецификации ANSI SQL 92.