怎么判断Access数据库的表中的字段是否存在索引
如何判断Access数据库的表中的字段是否存在索引
用Delphi操作,
如何判断Access数据库的表中的字段是否存在索引?
------解决方案--------------------
用
TCustomADODataSet.IndexFieldCount
可以判有多少索引,然后用
TCustomADODataSet.IndexFields 0..IndexFieldCount-1得到索引的字段
------解决方案--------------------
使用这个函数可以获得Access索引,原帖地址:http://hi.baidu.com/sqldebug/blog/item/a7a7a41acc98060d34fa4127.html,供你参考
用Delphi操作,
如何判断Access数据库的表中的字段是否存在索引?
------解决方案--------------------
用
TCustomADODataSet.IndexFieldCount
可以判有多少索引,然后用
TCustomADODataSet.IndexFields 0..IndexFieldCount-1得到索引的字段
------解决方案--------------------
使用这个函数可以获得Access索引,原帖地址:http://hi.baidu.com/sqldebug/blog/item/a7a7a41acc98060d34fa4127.html,供你参考
- Delphi(Pascal) code
procedure GetIndexName(AIndexs: TStrings; const ATable: string; Connection: TADOConnection); var ADODataSet: TADODataSet; FieldTable, FieldIndex, FieldColumn, FieldPrimary, FieldUnique: TField; sText: string; begin ADODataSet := TADODataSet.Create(nil); try Connection.OpenSchema(siIndexes, EmptyParam, EmptyParam, ADODataSet); FieldTable := ADODataSet.FindField('TABLE_NAME'); FieldIndex := ADODataSet.FindField('INDEX_NAME'); FieldColumn := ADODataSet.FindField('COLUMN_NAME'); FieldPrimary := ADODataSet.FindField('PRIMARY_KEY'); FieldUnique := ADODataSet.FindField('UNIQUE'); ADODataSet.First; while not ADODataSet.Eof do begin if SameText(FieldTable.AsString, ATable) then begin if FieldPrimary.AsBoolean then sText := 'PrimaryKey' else if FieldUnique.AsBoolean then sText := 'Unique' else sText := ''; if sText <> '' then sText := Format('%s (%s, %s)', [FieldIndex.AsString, FieldColumn.AsString, sText]) else sText := Format('%s (%s)', [FieldIndex.AsString, FieldColumn.AsString]); AIndexs.Add(sText); end; ADODataSet.Next; end; finally ADODataSet.Free; end; end;