Files
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

22 KiB
Raw Permalink Blame History

title, type, api, tags, sources
title type api tags sources
База данных (Интерфейс ksDataBaseObject) interface
api7
interface
api7
ksdatabaseobject
ksdatabaseobject.html

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 действителен только при работе с текстовыми базами данных.