Delphi:如何将表结构转换为对象

时间:2012-02-24 08:03:59

标签: sql sql-server database delphi

使用Delphi我需要创建一个包含特定表结构(没有数据)的类,包括所有字段,约束,外键,索引。目标是拥有“标准”表格,比较它们并找到差异。这个东西应该包含在我的大项目中,所以我不能使用任何“外部”比较器。此外,这个功能可能会扩展,所以我需要有自己的实现。问题是如何检索此信息,具有连接字符串并知道特定的表名称。正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:3)

如果你看一下Delphi的来源,就是这样做的:

从表中选择*,其中1 = 2

更新

可以使用Information Schema Views检索元数据,例如约束:

SELECT * FROM databaseName.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
Where TABLE_NAME='tableName' 

答案 1 :(得分:0)

自从我接触Delphi以来已经很长时间了,但我记得我曾经做过的几件事。喜欢

select top 0 * from table

返回0条记录但是TQuery被元数据“填充”。或者我认为在TClientDataSet上你可以将行设置为-1,这具有相同的效果。

正如我所说,自从我在Delphi中修改并且使用BDE而不是本机客户端以来,已经很长时间了,所以这可能都是无用的信息。

希望这会有所帮助。