ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.12.2025
Просмотров: 939
Скачиваний: 0
СОДЕРЖАНИЕ
Часть 1. Технологии работы с базами данных
Лабораторная работа 1 создание и модификация таблиц базы данных Цель работы
Содержание работы и методические указания к ее выполнению
Insert into имя_таблицы [(поле [,поле]...)]
Values (константа [,константа]...)
Лабораторная работа 2 выбор и модификация данных таблиц Цель работы
Содержание работы и методические указания к ее выполнению
Варианты заданий на составление запросов по выборке информации из таблиц базы данных
Варианты заданий на составление запросов по модификации информации из таблиц базы данных
Содержание работы и методические указания к ее выполнению
Последовательность выполнения лабораторной работы:
Содержание работы и методические указания к ее выполнению
Последовательность выполнения лабораторной работы
Требования к разрабатываемой программе
Последовательность выполнения лабораторной работы
Последовательность выполнения лабораторной работы:
Требования к разрабатываемой программе
2. Средства отслеживания ошибок
3. Непосредственное и подготавливаемое выполнение операторов sql
4. Использование параметров при выполнении
5. Настройка доступа к источнику данных
Последовательность выполнения лабораторной работы
Требования к разрабатываемой программе
Лабораторная работа 8 выборка данных с использованием средств odbc Цель работы
Содержание работы и методические указания к ее выполнению
Последовательность выполнения лабораторной работы
Требования к разрабатываемой программе
Содержание работы и методические указания к ее выполнению
Последовательность выполнения лабораторной работы
Требования к разрабатываемой программе
Лабораторная работа 10 использование языка php для доступа к базам данных Цель работы
Содержание работы и методические указания к ее выполнению
Последовательность выполнения лабораторной работы
Требования к разрабатываемой программе
Последовательность выполнения лабораторной работы:
Последовательность выполнения лабораторной работы:
Последовательность выполнения лабораторной работы:
Последовательность выполнения лабораторной работы:
2. Операторы манипуляции данными
3. Операторы определения транзакций
SQLExecDirect представляет собой самый быстрый способ запустить SQL-оператор при одноразовом выполнении.
RETCODE SQLExecDirect (hstmt, szSqlStr, cbSqlStr)
HSTMT hstmt- идентификатор оператора.
UCHAR szSqlStr- строка с SQL-оператором.
SDWORD cbSqlStr - длина строки szSqlStr.
Подготавливаемое выполнение предпочтительнее использовать, когда необходима информация о результирующем множестве до выполнения оператора или когда требуется выполнить SQL-оператор более одного раза. Для этого необходимы две функции SQLPrepare и SQLExecute.
SQLPrepare подготавливает SQL-строку для выполнения:
RETCODE SQLPrepare (hstmt, szSqlStr, cbSqlStr)
HSTMT hstmt - идентификатор оператора
UCHAR szSqlStr- строка с SQL-оператором
SDWORD cbSqlStr - длина строки szSqlStr
SQLExecute выполняет подготовленный оператор:
RETCODE SQLExecute(hstmt)
HSTMT hstmt - идентификатор оператора
SQLPrepare и SQLExecDirect отличаются тем, что при вызове SQLPrepare оператор SQL в действительности не выполняется, вместо этого определяется путь доступа к данным источника данных. Использование подготавливаемого выполнения удобно для операторов, которые будут выполняться более одного раза. Так как путь доступа к данным уже определен, то выполнение может осуществляться несколько быстрее, чем при использовании SQLExecDirect. Кроме того, каждый вызов SQLExecute передает базе данных только идентификатор для планирования обращения, а не весь SQL-оператор.
4. Использование параметров при выполнении
Параметры используются при непосредственном и подготавливаемом выполнении. Маркеры параметров определяются в SQL-операторах с помощью знаков "?". Например, SELECT n_post FROM s WHERE town=? или INSERT INTO p(name, town) VALUES (?,?). Для того, чтобы связать буфер с маркерами параметров, прикладная программа должна вызвать SQLBindParameter:
RETCODE SQLBindParameter (hsmt, ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, cbValueMax, pcValue)
HSTMT hsmt - идентификатор оператора, он должен быть точно тем же идентификатором оператора, с которым этот оператор подготавливается и выполняется.
UWORD ipar - номер параметра для связи. В операторе SQL операторы нумеруются слева направо, начиная с 1. Например, для следующего SQL-оператора используется три параметрических маркера : INSERT INTO j (n_izd, name, town) VALUES (?,?,?). Чтобы связать эти параметры, SQLBindParameter вызывается три раза с ipar, установленным в 1, 2 и 3 соответственно.
SWORD fParamType - является типом параметра для связи и может принимать одно из трех значений: SQL_PARAM_INPUT, SQL_PARAM_INPUT_OUTPUT или SQL_PARAM_OUTPUT. SQL_PARAM_INPUT используется для процедур, использующих параметры ввода. SQL_PARAM_INPUT_OUTPUT маркирует параметр ввода/вывода в процедуре. SQL_PARAM_OUTPUT маркирует значение возврата или параметр вывода в процедуре.
SWORD fCType - является С-типом данных для параметра. Это тип данных из которого необходимо конвертировать данные.
SWORD fSqlType - является ODBC типом данных для параметра. Это тип данных в которых конвертируются данные и он должен совпадать с SQL-типом столбца, соответствующего этому параметрическому маркеру.
UDWORD сbColDef - точность столбца или выражения соответствующего маркера параметра.
SWORD ibScale - размер столбца или выражения соответствующего маркера параметра
PTR rgbValue - указатель буфера для данных параметра, который при вызове SQLExecute или SQLExecuteDirect содержит действительные значения параметра.
SDWORD сbValueMax - максимальная длина буфера rgbValue.
SDWORD pcbValue - указатель буфера для длины параметра.
Ниже приведены основные значения С- и SQL-типов параметров.
-
С-тип
SQL-тип
SQL_C_BINARY
SQL_C_FLOAT
SQL_BINARY
SQL_DOUBLE
SQL_C_BIT
SQL_C_TIME
SQL_BIT
SQL_FLOAT
SQL_C_CHAR
SQL_C_DEFAULT
SQL_CHAR
SQL_INTEGER
SQL_C_DATE
SQL_C_SLONG
SQL_DATE
SQL_REAL
SQL_C_DOUBLE
SQL_C_SSHORT
SQL_DECIMAL
SQL_SMALLINT
SQL_TIME
SQL_VARCHAR
5. Настройка доступа к источнику данных
Настройка доступа к источнику данных включает:
редактирование файла .odbc.ini.
;
определение переменной
ODBCINI;
установка переменных окружения СУБД
;
включение необходимых заголовочных файлов
.
Для настройки источника данных, необходимо проверить находится ли системный текстовый файл .odbc.ini в домашней директории пользователя и отредактировать его, настроив на требуемые источники данных.
В файле .odbc.ini должен быть под некоторым идентификатором описан требуемый источник данных, имя которого используется функцией SQLConnect(), и далее должен присутствовать раздел с данным именем, в котором содержатся атрибуты, описывающие источник данных. Файл .odbc.ini должен содержать имя источника данных, имя сервера баз данных, имя базы данных и другие атрибуты.
В переменной окружения ODBCINI необходимо указать полное имя системного файла .odbc.ini, если он расположен не в домашней директории. Сделать это можно, либо введя с консоли соответствующую команду, либо поместив эту команду в файл загрузки .login. Форма записи команды зависит от используемой программы Shell-интерпретатора.
Системные требования зависят от той СУБД, с которой работает пользователь. Например, при работе с СУБД Informix это обеспечивается переменными окружения, выставленными в файле .cshrc в домашней директории пользователя.
Для получения доступа до ODBC-функций, в программе должен быть описан заголовочный файл sqlext.h. В файле sqltypes.h находятся описание типов данных используемых в ODBC.
Как и любой исходный файл, написанный на языке Си, файл с программой, вызывающей ODBC-функции, должен иметь расширение .с. При компиляции необходимо подключить необходимые библиотеки, используемые в вызываемых функциях. Поскольку в этом случае командная строка принимает достаточно сложный вид, целесообразно на уровне системного администратора оформить командный файл, в котором подключаются необходимые библиотеки.
Последовательность выполнения лабораторной работы
Убедиться в наличии и заполненности базы данных поставщиков
, деталей, изделий, поставок.
Разработать
ODBC-программу для решения задачи 1 из соответствующего варианта с помощью функций непосредственного выполнения.
Разработать
ODBC-программу для решения задачи 2 из соответствующего варианта с помощью функций подготавливаемого выполнения.
После выполнения лабораторной работы привести базу данных в исходное состояние
.
Требования к разрабатываемой программе
Разрабатываемая программа должна удовлетворять следующим требованиям:
все используемые функции ODBC должны анализироваться на корректность кода возврата;
в программе должен быть предусмотрен вывод сообщений обо всех шагах ее выполнения
, в том числе и о возможных ошибках;
при выполнении запросов должно быть предусмотрено использование параметров
; параметры варианта задания должны быть введены в ходе выполнения программы и переданы в SQL-запрос;
при выполнении программы должна контролироваться целостность базы данных
;
программа должна быть достаточно документирована
.
Варианты заданий
Вариант 1
Из таблицы поставок удалить поставки при заданных параметрах номера поставщика (имени поставщика) и номера детали.
Увеличить рейтинг поставщика
, выполнившего наибольшую поставку некоторой детали, на указанную величину.
Вариант 2
Удалить всех поставщиков из указанного города.
Изменить цвет самой тяжелой детали на указанный.
Вариант 3
Вставить поставщика с заданными параметрами.
Удалить самую легкую деталь.
Вариант 4
Удалить поставщика
, выполнившего меньше всего поставок.
Изменить название детали указанного цвета и веса.
Вариант 5
Удалить изделие из заданного города.
В таблице поставок изменить номер поставщика при заданном номере детали и изделия.
Вариант 6
Увеличить рейтинг поставщика
, выполнившего больший суммарный объем поставок, на указанную величину.
Вставить деталь с заданными параметрами.
Вариант 7
Изменить название и город детали с максимальным весом на указанные значения.
Удалить из таблицы поставок все поставки конкретного поставщика.
Вариант 8
Увеличить рейтинг поставщика
, выполнившего большее число поставок, на указанную величину.
Увеличить вес деталей из Лондона на некоторую величину.
Контрольные вопросы
Какова структура
ODBC-программы? Перечислите ее основные компоненты.
С помощью каких средств
ODBC можно отследить наличие ошибки?
В каких случаях непосредственное выполнение операторов является наиболее эффективным?
Когда используется подготавливаемое выполнение?
Как описываются маркеры параметров, и какая для этого предусмотрена функция? Каким образом можно связать несколько параметров?
С помощью какого параметра можно освободить буферы всех столбцов?
Как описать доступ до необходимой базы данных?
С помощью какой функции описывается соединение с необходимым источником данных? Каковы ее параметры?