|
Программирование >> Разработка пользовательского интерфейса
ODBC AP!
SQLOLE
Рис. 8.1. Использование связанных таблиц. Всю работу за вас выполняет процессор баз данных Microsoft Access. Самый надежный в плане программирования способ - он не требует вообще никаких дополнительных драйверов. Вы можете заниматься только обработкой данных, связывать таблицы на сервере с локальными таблицами, создавать запросы. Использование SQL pass-through функций. При этом вы обращаетесь напрямую к серверу, на его языке, минуя процессор баз данных Access. Ваш запрос, хотя и проходит через все компоненты ODBC, ни один из них реально не обрабатывает его. Прямое обращение к ODBC API. При этом способе вы также минуете процессор баз данных Access и напрямую используете Диспетчер драйверов и сам драйвер для доступа к базе данных. Таким образом, ваш код должен обеспечить всю функциональность, которую, как правило обеспечивает процессор баз данных Access. Сложность написания кода даже для довольно простых запросов заставляет обращаться к этому методу только тогда, когда действительно необходима значительная скорость выборки данных. Использование Remote Data Objects. Этот четвертый способ является самым дорогим по материальным затратам, так как для его функционирования необходимо, чтобы на вашей рабочей станции была установлена версия Enterprise Visual Basic 4.0 и выше. Технология Remote Data Objects (RDO) - Объекты для доступа к внешним данным -трактует запросы ODBC как объекты. Запросы работают со свойствами этих объектов и используют их методы, чтобы получить данные. В свою очередь, RDO конвертирует все действия в вызовы ODBC API. В принципе то же самое делает процессор баз данных, но во многих случаях RDO работает быстрее. Однако RDO также требует написания многих строчек кода, хотя и не такого сложного, как в случае прямого обращения к ODBC API. Ну и вспомните, что установка Enterprise версии Visual Basic стоит около 1000 долларов. Использование SQL DMO. За счет использования SQL OLE в этом случае не используются ни процессор баз данных, ни ODBC. В данном случае мы работаем с SQL-DMO. В этой технологии мы можем использовать такие продукты, как Visual Basic for Application, Visual Basic (32 bit), Visual FoxPro и C++ (32 bit), для работы с объектами, которые позволяют нам управлять различными SQL серверами в сети. Этот способ работает только под Windows NT и Windows 95. При этом на рабочей станции вам необходимо иметь клиентскую часть SQL Server. Программирование администрирования SQL Server значительно упрощается благодаря легкому в изучении и использовании объектному языку. Легко можно выполнять все запросы как выборки, так и управления. После того как вы подсоединитесь к внешнему источнику данных, вы можете задействовать набор SQL - pass through функций. С помощью них вы можете выполнять SQL команды, которые обеспечивают следующие операции: 1. Выполнение хранимым процедур. 2. Выполнение запросов на языке сервера. 3. Создание новых баз данных, таблиц и индексов на сервере. 4. Создание и выполнение триггеров, значений по умолчанию, правил проверки ввода и хранимых процедур. 5. Поддержание бюджетов пользователей или выполнение других задач Системного Администратора. 6. Выполнение множественных операций добавления и обновления в одном наборе команд. Для того чтобы получить доступ ко всем этим возможностям, вам необходимо наличие Администратора ODBC на вашей рабочей станции. Как правило, большинство приложений фирмы Microsoft устанавливают это приложение, если вы при установке указали, что это необходимо. Нужные драйверы, как правило, поставляются с продуктом, доступ к данным которого вы хотите иметь. Помимо этого их выпускают еще третьи фирмы. Можно написать драйвер и самостоятельно, используя ODBC SDK. После того как вы решили все эти проблемы, можете приступать к созданию хранилищ данных на выбранном сервере баз данных. Команды Transact-SQL Теперь, когда мы подошли к вопросу создания приложений клиент-сервер, настала пора продолжить изучение следующего набора SQL команд. Помните, что все они доступны из любого средства разработки приложений, которое либо поддерживает ODBC, либо имеет возможность вызывать функции из внешних API. У нас нет возможности описать все диалекты и нет желания описывать стандартный SQL. Поэтому мы остановимся на MS SQL Server. То есть синтаксис приводимых команд и примеры их использования относятся к MS SQL Server. Одна из самых сложных команд в Transact-SQL - команда CREATE TABLE имеет много опций и позволяет построить настоящую схему данных. Мы рассматривали эту команду в предыдущем разделе, но синтаксис этой команды в Transact-SQL требует более подробного ее рассмотрения в данном диалекте SQL. Приводим синтаксис этой команды, а в табл. 8.2 описание ее аргументов. CREATE TABLE [database.[owner].]tablename ({colname datatype [NULL NOT NULL IDENTITY[(seed, increment)]] [constraint [ constraint [...constraint]]] [[,] constraint]} [[,] {nextcolname nextconstraint}...]) [on segmentname] Таблица 8.2. Аргументы команды CREATE TABLE Аргумент Назначение Database База данных, которая будет содержать таблицу. Если этот параметр опущен, то базой данных по умолчанию будет последняя, открытая с помощью команды USE. Owner Владелец новой таблицы, если не указан, то владельцем будет считаться текущий пользователь, который запускает команду. Tablename Имя вновь создаваемой таблицы. Должно удовлетворять правилам SQL для идентификаторов. Colname Название колонки в таблице. Должно удовлетворять правилам SQL для идентификаторов. Datatype Тип данных, поддерживаемый в SQL. Может быть как встроенным, так и пользовательским типом. Seed Начальное значение колонки типа IDENTITY. Increment Разница между последовательными значениями в колонке типа IDENTITY. Constraint Ограничения уровня поля или колонки. Пример использования команды: CREATE TABLE modelSQL (key auto smallint IDENTITY(1,1), model name varchar(25) NOT NULL, model prc money) В этом примере используются следующие опции команды CREATE TABLE: IDENTITY - указывает, что SQL Server автоматически прибавит единицу (аргумент Increment), причем отсчет начнется с 1 (Seed). NOT NULL - указывает, что поле должно иметь значения в каждой новой записи. Это устанавливается по умолчанию. Если нужно разрешить полю не иметь значения, то в поле необходимо указать NULL. Каждой колонке должен быть присвоен тип данных, которые она может хранить. В табл. 8.3 мы приведем типы данных, которые поддерживаются в MS SQL Server для колонок. Таблица 8.3. Допустимые типы данных для MS SQL Server Тип Описание данных bynary(n) Данные бинарного типа длиной ровно n бит. Не может принимать значения типа NULL. varbynary(n) Данные двоичного типа длиной до n бит. Может принимать значения типа NULL. char(n) Данные символьного типа длиной ровно n символов. Не может принимать значения типа NULL. varchar(n) Данные символьного типа длиной до n символов. Может принимать значения типа NULL. datetime Тип дата, который может принимать значения между 1 января 1753 и 31 декабря 9999 с точностью в 3.33 миллисекунд. small- Тип дата, который может принимать datetime значения между 1 января 1900 и 06 июня 2079 с точностью в 1 минуту. decimal(p,s) Десятичное число, которое может иметь всего до p знаков и до s знаков после запятой. Значение p должно быть не больше, чем 38, а s не больше, чем p. numeric(p,s) Десятичное число, которое может иметь всего до p знаков и до s знаков после запятой. Значение p должно быть не больше, чем 38, а s не больше, чем p. float(n) Число с плавающей запятой с количеством знаков после запятой не больше 15. Позволяет достигнуть точности 10 в 38 степени. real Число, которое может иметь до 7 знаков после запятой. int Целое число, принимающее значения между -2 147 483 648 и 2 147 483 647. smallint Целое число, принимающее значения
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |