Вперед к победе ккоммунизма!
Вперед к победе ккоммунизма!
Сообщений 1 страница 10 из 10
Поделиться22008-01-26 09:24:46
Коммунизм - не за горами.
Поделиться32008-01-26 09:25:19
За горами - Грузия
Поделиться42008-01-26 09:25:45
И еще -Армения
Поделиться52008-01-26 09:26:25
И еще - Азербайджан
Поделиться62008-01-26 09:27:13
а дальше -Турция
Поделиться72008-01-26 09:27:46
Через море - Израиль
Поделиться82008-01-26 09:28:23
А в Израиле - Моисей
Поделиться92008-01-26 09:29:24
Но коммунизм он и в Израиле не построил
Поделиться102008-01-26 09:30:02
С учётом согласований: 1.25.08
Задание 01. 8 программ работы с базами данных.
Назначение. Обеспечение независимости проекта от используемых баз данных.
Исходные предпосылки.
1. Предполагается, что ПроТИС будет работать только с теми БД, которые обеспечивают SQL стандарт. А на первом этапе – это (по умолчанию) БД MySQL.
2. Ввиду того, в SQL стандарт не входит регламентация на подпрограммы в самих БД и не регламентируется структура доступа к самим БД, а регламентируется только сам язык SQL, необходимо создать стандартные операции обращения к подпрограммам формирования обращения к БД. На первом этапе это м.б. простые операции над одной таблицей с простейшими условиями внутри WHERE. Имя таблицы предполагается в глобальной переменной db_name.
3. На первом этапе д.б. разработаны программы:
1. UNISELECT 2. UNIUPDATE 3. UNIINSERT 4. UNIDELETE
5. UNIFIND 6. UNICREATE 7. UNICOPY 8. UNITRANSFR
3.1. UNISELECT
Назначение: Выборка данных из таблицы и занесение их в заданные поля.
Исходные данные.
Вызов: uniselect (db, tab_name, col_list, arr_list, sel_cond )
db - переменная типа resource, для задания открытой базы данных (Может храниться в глобальной переменной, чтобы сократить техт обращения)
Для этого в скрипт, где хранится набор предложенных функций необходимо добавить
функцию
uniconnect ( $host, $username, $password );
Параметры – 4 текстовые переменные:
tab_name - имя таблицы
col_list – перчень имён столбцов, из которых должна производиться выборка в том же порядке
arr_list – двумерный массив, в котором строка – массив значений записи.
форматов, в которые должна производиться выборка в том же порядке
sel_cond - условие выборки (в формате SQL)
Целая переменная count_max содержит ожидаемое максимальное число записей. Если оно =0, то такого числа нет;
Результат.
1. В целой переменной count_rec – количество выбранных строк.
2. В целой переменной count_bug – количество ненайденных (по именам) столбцов.
Если не найдена по имени таблица – здесь -1.
Если найдено количество строк больше максимально ожидаемого – здесь -2
Если форматы переменных в БД и одномерных принимающих массивов или переменных не
совпадают – здесь -3
Примечание: При обнаружении ошибки программа формирует 0 в count_rec и соответстующее значение в count_bug.
3.2. UNIUPDATE
Назначение: Изменение значений в столбцах таблицы.
Исходные данные.
Вызов: uniupdate (db, tab_name, col_list, arr_list, sel_cond )
db - переменная типа resource, для задания открытой базы данных
Параметры – 4 текстовые переменные:
tab_name - имя таблицы
col_list – перчень имён столбцов, в которых должна производиться замена значений
arr_list - перечень значений, которые должны помещаться в соответствующие поля
(текстовые значения должны заключаться в одинарные скобки).
sel_cond - условие для нахождения строки в таблице (в формате SQL)
Порядок следования значений должен совпадать с порядком имен столбцов в перечне имён столбцов.
Результат.
В целой переменной count_bug – количество ненайденных (по именам) столбцов.
Если не найдена по имени таблица – здесь -1.
Если форматы передаваемых данных не совпадают с форматами соответствующих столбцов в
БД – здесь -3
Примечание: При обнаружении ошибки программа формирует 0 в count_rec и соответстуюее значение в count_bug.
3.3. UNIINSERT
Назначение: Добавление строк в таблицу.
Исходные данные.
Вызов: uniupdate (db, tab_name, col_list, arr_list, )
db - переменная типа resource, для задания открытой базы данных
Параметры – 3 текстовые переменные:
tab_name - имя таблицы
col_list – перчень имён столбцов, в которые должна производиться выборка в том же порядке
arr_list - перечень значений, которые должны помещаться в соответствующие поля
(текстовые значения должны заключаться в одинарные скобки ).
Порядок следования значений должен совпадать с порядком имен столбцов в перечне имён столбцов
Целая переменная count_ rec содержит количество добавляемых строк.
Результат.
В целой переменной count_bug – количество ненайденных (по именам) столбцов.
Если не найдена по имени таблица – здесь -1.
Если форматы передаваемых данных не совпадают с форматами соответствующих столбцов в
БД – здесь -3
Примечание: При обнаружении ошибки программа формирует 0 в count_rec и соответстуюее значение в count_bug.
3.4 UNIDELETE
Назначение: Удаление строк из таблицы.
Исходные данные.
Вызов: unidelete (db, tab_name, sel_cond)
db - переменная типа resource, для задания открытой базы данных
Параметры – 2 текстовые переменные:
tab_name - имя таблицы
sel_cond - условие (в формате SQL) для нахождения удаляемых строк
Результат.
В целой переменной count_bug :
Если не найдена по имени таблица – здесь -1.
В целой переменной count_rec – количество удалённых строк
3.5. UNIFIND
Назначeние: Определить наличие таблицы с заданным именем.
Исходные данные.
Вызов: unifind (db, tab_name)
db - переменная типа resource, для задания открытой базы данных
Параметр – 1 текстовая переменная:
tab_name - имя таблицы
Результат.
В целой переменной count_bug:
Если не найдена по имени таблица – здесь -1, иначе 0.
3.6. UNICREATE
Назначeние: Создание таблицы.
Исходные данные.
Вызов: unicreate (db, tab_name, cоl_format)
db - переменная типа resource, для задания открытой базы данных
Параметры – 2 текстовыe переменные:
tab_name - имя создаваемой таблицы
cоl_format – имя массива, в каждой строке которого записаны имя столбца и его формат.
Результат.
В целой переменной count_bug :
Если имя таблицы уже существует – здесь -1.
Если имя таблицы недопустимо – здесь -2.
Если недопустимый формат – здесь -3
Количество недопустимых форматов – в count_bug.
Примечание: Для модели, как сейчас представляется, надо всего 5 форматов:
строка( 0-255 символов ),
текст(аналог BLOB поле переменной длины которой позволяет сохранять более 255 символов текста. Оно необходимо для сохранения страниц текста ),
целое,
десятичное,
дата.
Следует предусмотреть возможность добавления новых форматов, предусмотренных MySQL.
3.7. UNICOPY
Назначeние. Копирование таблицы с заменой имени.
Исходные данные.
Вызов: unicopy (db, tab_name, new_tab_name)
db- переменная типа resource, для задания открытой базы данных
Параметры – 2 текстовыe переменные:
tab_name - имя копируемой таблицы
new_tab_name – имя новой таблицы
Результат.
В целой переменной count_bug :
Если не найдена по имени таблица – здесь -1, иначе 0.
3.8. UNITRANSFER
Назначeние: Перенос сайта и БД.
Исходные данные и всё остальное – на усмотрение программиста.
Приложение:
содержание и форма документации,
порядок сдачи-приёмки (ожидаю предложение программиста – для согласования).