powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ODBC как получить список таблиц
7 сообщений из 7, страница 1 из 1
ODBC как получить список таблиц
    #37006000
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подключаюсь так
DRIVER={InterSystems ODBC}; SERVER=127.0.0.1; PORT=1972; DATABASE=User; UID=_system; PWD=sys
Запросы работают нормально.
Появился вопросик, для динамического построения запросов.

Можно ли на SQL получить:
- список таблиц доступных для запроса
- список полей конкретной таблицы
- тип поля
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37006082
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select * from %dictionary.compiledclass
select * from %dictionary.compiledproperty
Детали в документации по классам %Dictionary.CompiledClass, %Dictionary.CompiledProperty .
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37006098
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

[SQLCODE: <-30>:<Table or View not found>]
[Cache Error: <<SYNTAX>errdone+1^%qaqqt>]
[Details: <Prepare>]
[%msg: < SQL ERROR #30: Table '%DICTIONARY.COMPILEDPROPERTY' not found>]

Подключаюсь вот так

СтрПодключения = "DRIVER={InterSystems ODBC}; SERVER=127.0.0.1; PORT=1972; DATABASE=USER; UID=_system; PWD=sys";
Попытка
Соединение.Open(СтрПодключения);
Сообщить("Соединение осуществлено в "+ТекущаяДата());
Исключение
Предупреждение("Невозможно установить соединение");
Возврат;
КонецПопытки;

ШаблонЗапроса = "select * from %dictionary.compiledproperty";
НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
НаборЗаписей.ActiveConnection = Соединение;
НаборЗаписей.Open(ШаблонЗапроса);
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37006562
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StrayXXX4U [SQLCODE: <-30>:<Table or View not found>]
[Cache Error: <<SYNTAX>errdone+1^%qaqqt>]
[Details: <Prepare>]
[%msg: < SQL ERROR #30: Table '%DICTIONARY.COMPILEDPROPERTY' not found>]

Подключаюсь вот так

СтрПодключения = "DRIVER={InterSystems ODBC}; SERVER=127.0.0.1; PORT=1972; DATABASE=USER; UID=_system; PWD=sys";

Попробуйте добавить в область USER отображение пакета %DICTIONARY (может потребуются и дополнительные отображения).
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37006730
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turk, пакет %DICTIONARY - %-ный, значит и так должен быть туда отображен.
У меня, к примеру, в Портале и в WinSQL эти запросы работают.

Посоветовал бы ТС установить какую-нибудь внешнюю тулзу для работы с БД по ODBC и потренироваться в ней, просто чтобы отделить "мух от котлет". К "котлетам" отношу здесь такие вопросы, как наличие таблиц, корректность запросов и т.д.
Мы для этого обычно используем WinSQL.
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37007071
StrayXXX4U
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Turk,
Спасибо, а как " добавить в область USER отображение пакета %DICTIONARY"
...
Рейтинг: 0 / 0
ODBC как получить список таблиц
    #37007327
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrayXXX4U ,

Проверил на версии 2010.2.1 из Delphi через ADO - работает.

Какая у Вас версия Caché ($zv)?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ODBC как получить список таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]