如何通过VB6.0或2005的ADODB连接,从SQL获得表的索引名?(DBMR2040)

~ 0 min
2016-03-03 03:48

使用单条SQL语句不能直接获得索引字段名,必须通过多条SQL语句才可以得到。首先,从system.sysindex获得num_column, reserve3;其次,使上述结果与system.syscolumn的column_name相匹配。我们可以通过ec来编写存储过程以实现上述操作。

我们可以凭借SQLStatistics通过openSchema的ADO函数来获得索引字段的数据库元数据。

请注意,DBMaster5.1的OLEDB可支持此方法。对于DBMaster4.3版本,您应该把提供商改为“MSDASQL,把数据源改为“dbsample4”;

使用方法如下:

DBMaster4.x

Dim conStr As String

Set conn = New ADODB.Connection

conStr = "Provider=MSDASQL; data source=dbsample4; user id=sysadm; password=;  "

 conn.Open conStr

 'Set rs = conn.OpenSchema(adSchemaIndexes, Array(Empty, "scheme_name", Empty, Empty, "table_name"))

While Not rs.EOF

 Debug.Print rs!COLUMN_NAME

   rs.MoveNext

 Wend

DBMaster5.x

Dim conStr As String

 Set conn = New ADODB.Connection

conStr = "Provider=dmole51; data source=dbsample5; user id=sysadm; password=; "

 conn.Open conStr

Set rs = conn.OpenSchema(adSchemaIndexes, Array(Empty, Empty, Empty, Empty, "CARD"))

 While Not rs.EOF

 Debug.Print rs!COLUMN_NAME

 rs.MoveNext

 Wend

版本: DBMaster 5.x, DBMaster 4.3

产品: Normal

平台: all windows

平均分: 0 (0 投票)

你不能对该内容发表评论

标签