docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| База данных (Интерфейс ksDataBaseObject) | interface |
|
|
|
API интерфейсов. Версия 5
База данных (Интерфейс ksDataBaseObject)
Интерфейс базы данных. Примечание: Указатель на интерфейс можно получить при помощи метода KompasObject::DataBaseObject. Смотрите также KompasObject
ksCloseTextFile - Закрыть текстовый файл запросов
Аналог данного метода при использовании API экспортных функций - CloseTextFile. Синтаксис Automation:
BOOL ksCloseTextFile (long F);
Входной параметр:
F - указатель на текстовый файл.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
ksCondition - Задать или изменить условие запроса
Аналог данного метода при использовании API экспортных функций - Condition. Синтаксис Automation:
long ksCondition (long db,
long r,
BSTR stSQL);
Входные параметры:
db - указатель на объект БД,
r - указатель на отношение,
stSQL - запрос.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: При работе с базой данных через ODBC-интерфейс происходит переопределение составляющей SQL-запроса, начинающейся с ключевого слова WHERE. Состав обрабатываемых полей записи, определенный в отношении, не изменяется. При работе с текстовыми файлами использование функции ksDataBaseObject::ksCondition является единственной возможностью определения условия запроса, так как в функции ksDataBaseObject::ksDoStatement определяется только список обрабатываемых полей записи. Следует отметить, что при работе с текстовыми базами данных не обрабатывается вложенность условий (например, "where d > 10 and d < 14").
ksConnectDB - Связать объект БД с конкретной базой данных
Аналог данного метода при использовании API экспортных функций - ConnectDB. Синтаксис Automation:
long ksConnectDB (long db,
BSTR DBName);
Входные параметры:
db - указатель на объект БД,
DBName - имя БД (для ODBC - имя БД в администраторе ODBC, для текстового файла - имя файла).
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
ksCreateDB - Создать блок заголовка базы данных
Синтаксис Automation:
long ksCreateDB (BSTR typeBD);
Входной параметр:
typeBD - тип базы данных: TXT_DB - база данных текстового формата, ODBC_DB - база данных, доступная через интерфейс ODBC.
Возвращаемое значение:
указатель на блок заголовка базы данных - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Функция позволяет открыть БД. Одновременно может быть открыто несколько БД.
ksDeleteDB - Удалить блок заголовка базы данных
Аналог данного метода при использовании API экспортных функций - DeleteDB. Синтаксис Automation:
long ksDeleteDB(long db);
Входной параметр:
db - указатель на объект БД.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Происходит автоматическое отсоединение базы данных и удаление всех созданных ранее запросов.
ksDisconnectDB - Отключиться от базы данных
Аналог данного метода при использовании API экспортных функций - DisconnectDB. Синтаксис Automation:
long ksDisconnectDB (long db);
Входной параметр:
db - указатель на объект БД.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Функция отсоединяет блок заголовка с указателем bd от базы данных. Следует отметить, что при удалении блока заголовка (функция ksDataBaseObject::ksDeleteDB) отсоединение выполняется автоматически, поэтому использовать ее рекомендуется только при переопределении базы данных.
ksDoStatement - Установить запрос для объекта БД
Аналог данного метода при использовании API экспортных функций - DoStatement. Синтаксис Automation:
long ksDoStatement (long db, long r,
BSTR stSQL);
Входные параметры:
db - указатель на объект БД,
r - действительный указатель на отношение,
stSQL - запрос.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр stSQL при работе через ODBC-интерфейс содержит строку SQL-запроса, а при работе с текстовыми файлами - номера полей (колонок) или пустую строку (если обрабатываются все поля таблицы). Для текстовых баз данных созданный запрос будет обрабатывать все записи, а непосредственно условие выборки определяется функцией ksDataBaseObject::ksCondition. Для ODBC-баз отношение не обязательно в случае вставки, удаления и обновления записи. Для текстового файла отношение в этих случаях необходимо, чтобы определить имена колонок. Примеры:
Select d, s, p from bolt where d = 10 - пример запроса выборки из БД,
где d, s, p - названия колонок или * для всех колонок или номера колонок "2, 4, 7" для текстового файла, начиная с единицы слева направо,
bolt - имя таблицы в БД или пустая строка для всех колонок текстового файла,
d - имя колонки в отношении.
Insert into bolt (d,p,s) values( 10, 1.5, 14 ) - пример запроса для вставки строки в таблицу,
где bolt - имя таблицы в БД или пустая строка для всех колонок текстового файла.
Delete from bolt where d = 10 - пример запроса для удаления строки из таблицы bolt.
Update bolt set p = 2.5, s = 20 where d =10 - пример запроса для замены данных в строке таблицы bolt.
ksEndRelation - Завершить описание отношения
Аналог данного метода при использовании API экспортных функций - EndRelation. Синтаксис Automation:
BOOL ksEndRelation();
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Описание отношения начинается методом ksDataBaseObject::ksRelation.
ksFreeStatement - Освободить отношения
Аналог данного метода при использовании API экспортных функций - FreeStatement. Синтаксис Automation:
long ksFreeStatement (long db, long r, long fOption);
Входные параметры:
db - указатель на объект БД,
r - указатель на отношение,
fOption - тип освобождения.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Происходит освобождение памяти, отведенной для буфера записи функцией ksDataBaseObject::ksRelation. Параметр fOption имеет значение при работе через ODBC-интерфейс и означает тип освобождения (описан в помощи модуля ODBC).
ksGetColumnName - Считать имя колонки таблицы из базы данных
Аналог данного метода при использовании API экспортных функций - GetColumnName. Синтаксис Automation:
BSTR ksGetColumnName (long db,
BSTR tableName,
long* res,
BSTR firstOrNext);
Входные параметры:
db - указатель на объект БД,
tableName - ODBC - имя таблицы, текстовая БД - имя файла,
firstOrNext - признак колонки: F - первая колонка, N - следующая колонка.
Выходной параметр:
res - результат работы: 1 - если в указанной таблице или базе еще существуют несчитанные имена колонок, 0 - если все имена колонок считаны.
Возвращаемое значение:
имя колонки.
Примечание: Для текстовых БД возвращаются номера колонок.
ksGetTableName - Считать имя таблицы
Аналог данного метода при использовании API экспортных функций - GetTableName. Синтаксис Automation:
BSTR ksGetTableName (long db,
long* res,
BSTR firstOrNext);
Входные параметры:
db - указатель на объект БД,
firstOrNext - признак таблицы: F - первая таблица, N - следующая таблица.
Выходной параметр:
res - результат работы: 1- если в указанной базе еще существуют несчитанные имена таблиц, 0 - если все имена таблиц считаны.
Возвращаемое значение:
имя таблицы.
ksIsODBCOkey - Проверить подключение ODBC
Аналог данного метода при использовании API экспортных функций - IsODBCOkey. Синтаксис Automation:
long ksIsODBCOkey();
Возвращаемое значение:
1 - если соединение с ODBC установлено,
0 - если соединения нет.
ksOpenTextFile - Открыть текстовый файл запросов
Аналог данного метода при использовании API экспортных функций - OpenTextFile. Синтаксис Automation:
long ksOpenTextFile (BSTR fileName);
Входной параметр:
fileName - имя файла.
Возвращаемое значение:
указатель на открытый файл - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Открыть текстовый файл запросов, настроенный на базу данных. Функция работает по правилам стандартной процедуры WINDOWS OpenFile. Реализованные в рамках данного раздела функции работы с текстовыми файлами обеспечивают их построчную обработку и позволяют вынести обращения к базе данных во внешний текстовый файл. Это дает возможность работать с разными платформами СУБД без изменения выполняемого кода приложения.
ksRChar - Определить в отношении строковое поле
Аналог данного метода при использовании API экспортных функций - RChar. Синтаксис Automation:
long ksRChar (BSTR name,
long size,
long type);
Входные параметры:
name - имя колонки таблицы,
size - размер буфера,
type - тип данных, хранящихся в БД (действительно для ODBC-баз).
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен при работе с текстовой базой данных. Параметр type имеет смысл только для баз данных, связанных через ODBC, и описывает действительный тип колонки базы данных, с которой будет связано поле при выполнении операции ksDataBaseObject::ksDoStatement. Это позволяет получать строковое представление записи произвольного типа. Описания типов для ODBC хранятся в файле SQL.h, который поставляется вместе с модулями ODBC.
ksRCharW - Определить в отношении строковое поле
Аналог данного метода при использовании API экспортных функций - RCharW. Синтаксис Automation:
long ksRCharW (BSTR name,
long size,
long type);
Входные параметры:
name - имя колонки таблицы,
size - размер буфера,
type - тип данных, хранящихся в БД (действительно для ODBC-баз).
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен при работе с текстовой базой данных. Параметр type имеет смысл только для баз данных, связанных через ODBC, и описывает действительный тип колонки базы данных, с которой будет связано поле при выполнении операции ksDataBaseObject::ksDoStatement. Это позволяет получать строковое представление записи произвольного типа. Описания типов для ODBC хранятся в файле SQL.h, который поставляется вместе с модулями ODBC.
ksRDouble - Определить в отношении поле типа double
Аналог данного метода при использовании API экспортных функций - RDouble. Синтаксис Automation:
long ksRDouble (BSTR name);
Входной параметр:
name - имя поля.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен только при работе с текстовыми базами данных.
ksReadRecord - Получить запись базы данных
Аналог данного метода при использовании API экспортных функций - ReadRecord. Синтаксис Automation:
long ksReadRecord (long db,
long r,
LPDISPATCH userPars);
Входные параметры:
db - указатель на объект БД,
r - указатель на отношение,
userPars - указатель на интерфейс ksUserParam.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Количество и типы полей в структуре userPars должны соответствовать отношению r.
ksReadStrFrFile - Считать строку из текстового файла запросов
Аналог данного метода при использовании API экспортных функций - ReadStrFromTextFile. Синтаксис Automation:
BSTR ksReadStrFrFile (long f,
long* res,
long numb);
Входные параметры:
f - указатель на текстовый файл,
numb - номер строки.
Выходной параметр:
res - результат работы метода: 1 - в случае успешного завершения, 0 - в случае неудачи.
Возвращаемое значение:
- строка обращения к базе данных.
Примечание: Строка обращения к базе данных начинается с номера, далее после двоеточия идет текст обращения, например: 3:select d,f from Table1 where d=10 and f>d
ksRelation - Создать новое отношение
Аналог данного метода при использовании API экспортных функций - Relation. Синтаксис Automation:
long ksRelation (long db);
Входной параметр:
db - указатель на объект БД.
Возвращаемое значение:
указатель на отношение - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Отношение характеризует один запрос и представляет собой Описание памяти, необходимой для размещения очередной записи выборки, выполняемого функцией ksDataBaseObject::ksReadRecord. Является составным объектом, каждое поле которого описывает тип и имя поля (колонки) в таблице базы данных. Имя действительно только в случае работы с текстовым файлом, так как при обмене через ODBC-интерфейс имена уже описаны в блоке заголовка. Количество отношений, определенных для базы данных, не ограничивается.
ksRFloat - Определить в отношении поле типа float
Аналог данного метода при использовании API экспортных функций - RFloat. Синтаксис Automation:
long ksRFloat (BSTR name);
Входной параметр:
name - имя поля.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен только при работе с текстовыми базами данных.
ksRInt- Определить в отношении поле типа Int
Аналог данного метода при использовании API экспортных функций - RInt. Синтаксис Automation:
long ksRInt (BSTR name);
Входной параметр:
name - имя поля.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен только при работе с текстовыми базами данных.
ksRLong - Определить в отношении поле типа long
Аналог данного метода при использовании API экспортных функций - RLong. Синтаксис Automation:
long ksRLong (BSTR name);
Входной параметр:
name - имя поля.
Возвращаемое значение:
1 - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Параметр name действителен только при работе с текстовыми базами данных.