Функция SQL_СОЗДАТЬ
Функция SQL_СОЗДАТЬ создает новую таблицу с заданными полями.
ФУНКЦИЯ ТИП_SQL: SQL_СОЗДАТЬ(ТИП_СТРОКА: имя_таблицы[;
[ <поле_1> [, <поле_2> [ ... ]]]
])
Параметры
- имя_таблицы
- Имя файла таблицы с расширением или без него (по умолчанию *.dbf).
- поле_N
-
Описатель поля, имеет следующую структуру:
ТИП_СТРОКА: имя[!][~]: <тип> [: ТИП_ЧИСЛО: длина [; знаки]]
- имя
- Имя поля. Восклицательный знак после имени поля означает, что поле должно быть включено в первичный ключ (primary key). Первичные ключи поддерживаются только для таблиц Paradox *.DB. По умолчанию первичным ключом назначается первое поле в списке (* - см. подробности ниже). Для подавления назначения перого поля первичным ключом после имени первого поля можно указать тильду (~). При явном указании полей первичного ключа с помощью восклицательных знаков, эти поля должны быть в начале списка.
- тип
-
Ключевое слово, задающее тип поля. Допустимы следующие типы:
- ТИП_СТРОКА
- ТИП_ЧИСЛО
- ТИП_ЛОГИКА
- ТИП_ДАТА
- ТИП_ВРЕМЯ
- ТИП_АВТОИНК – автоинкрементальное целочисленное поле (поддерживается только для Paradox *.DB)
- ТИП_ЦЕЛОЕ – позволяет создать 32-битное целочисленное поле
- ТИП_ДРОБНОЕ – позволяет создать числовое поле с фиксированным размером дробной части
- длина
- Длина поля. Используется только для типов строка и число.
- знаки
- Количество десятичных знаков после запятой. Используется только для типа число.
Возвращаемое значение
Объект, связанный с открытой таблицей.
* Замечание:
До версии 8.8114 для таблиц Paradox автоматическое назначение первого поля первичным ключом зависело от регистра символов расширения файла. В верхнем регистре "DB" - первое поле назначалось первичном ключом, "db" или "Db" - нет. В версии 8.8114 и выше первое поле назначается первичным ключом независимо от регистра символов в расширении. Для отказа от создания первичного ключа для первого поля после его имени указывается тильда.
Таблица соответствия типов полей:
| Ключевое слово, длина и знаки |
Тип SQL | Тип DBASE (*.dbf) | Тип Paradox (*.db) |
|---|---|---|---|
| ТИП_СТРОКА: длина | CHAR(длина) | Character(длина) | Alpha(длина) |
| ТИП_ЧИСЛО: длина; знаки | NUMERIC(длина, знаки) | Number(длина, знаки) | Number |
| ТИП_ЛОГИКА | BOOLEAN | Logical | Logical |
| ТИП_ДАТА | DATE | Date | Date |
| ТИП_ВРЕМЯ | TIME | не поддерживается | Time |
| ТИП_АВТОИНК | AUTOINC | не поддерживается | Autoincrement |
| ТИП_ЦЕЛОЕ | INTEGER | Number(11,0) | Long Integer |
| ТИП_ДРОБНОЕ: длина; знаки | DECIMAL(длина, знаки) | Number(длина, знаки) | BCD(знаки) |
Также см. подробности в описании инструкции SQL CREATE TABLE.
Пример использования
// Создаем новую таблицу
Б = SQL_СОЗДАТЬ ("NewTab.dbf", [ "ItemName": ТИП_СТРОКА: 254,
"IPrice": ТИП_ЧИСЛО: 12; 2,
"ICount": ТИП_ЧИСЛО: 10; 0,
"IDate": ТИП_ДАТА ] )
н = 20 // Количество записей
ЦИКЛ ДЛЯ ( и = 1, н )
// Записываем данные
Б.ЗАП_ПОЛЕ ( "ItemName", "Название" + СТР ( и ) )
Б.ЗАП_ПОЛЕ ( "IPrice", и )
Б.ЗАП_ПОЛЕ ( "ICount", и )
Б.ЗАП_ПОЛЕ ( "IDate", ДАТА_ТЕК )
Б.ДОБАВИТЬ // Добавляем запись в таблицу
КОНЕЦ_ЦИКЛА
Б.ЗАКРЫТЬ // Закрываем таблицу