Delphi: Как получить структуру таблицы в объект - PullRequest
2 голосов
/ 24 февраля 2012

Используя Delphi, мне нужно создать класс, который будет содержать определенную структуру таблицы (без данных), включая все поля, ограничения, внешние ключи, индексы. Цель состоит в том, чтобы иметь «стандартную» таблицу, сравнить их и найти различия. Эта вещь должна быть включена в мой большой проект, чтобы я не мог использовать «внешние» компараторы. Кроме того, эта функциональность может быть расширена, поэтому мне нужно иметь собственную реализацию. Вопрос в том, как я могу получить эту информацию, имея строку подключения и зная конкретное имя таблицы. SQL Server 2008 используется.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Если вы посмотрите на источник Delphi, это делается так:

Выбрать * из таблицы, где 1 = 2

Обновление :

Метаданные можно получить с помощью Представления информационной схемы , например, ограничения:

SELECT * FROM databaseName.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
Where TABLE_NAME='tableName' 
0 голосов
/ 24 февраля 2012

Прошло очень много времени с тех пор, как я прикоснулся к Delphi, но я помню пару вещей, которые я делал раньше.Например,

select top 0 * from table

возвращает 0 записей, но TQuery «заполняется» метаданными.Или я думаю, что в TClientDataSet вы можете установить для строк значение -1, что имеет тот же эффект.

Как я уже говорил, я давно работал в Delphi и использовал BDE, а не nativeклиенты, так что это может быть бесполезной информацией.

Надеюсь, это немного поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...