如何通过VB6.0或2005的ADODB连接,从SQL获得表的索引名?(DBMR2040)
使用单条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