From 3d6a6512ada875d3ca4ab5b3ed4b42e11b3ef2ec Mon Sep 17 00:00:00 2001 From: lacak Date: Fri, 24 Jul 2015 05:38:26 +0000 Subject: [PATCH] fcl-db: odbc: add support for stIndexes for database metadata retrieval SetSchemaInfo() git-svn-id: trunk@31225 - --- packages/fcl-db/src/sqldb/odbc/odbcconn.pas | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/fcl-db/src/sqldb/odbc/odbcconn.pas b/packages/fcl-db/src/sqldb/odbc/odbcconn.pas index e0af6978a3..dc3f5be83f 100644 --- a/packages/fcl-db/src/sqldb/odbc/odbcconn.pas +++ b/packages/fcl-db/src/sqldb/odbc/odbcconn.pas @@ -757,7 +757,7 @@ begin // prepare statement ODBCCursor.FQuery:=Buf; - if not (ODBCCursor.FSchemaType in [stTables, stSysTables, stColumns, stProcedures]) then + if not (ODBCCursor.FSchemaType in [stTables, stSysTables, stColumns, stProcedures, stIndexes]) then begin ODBCCheckResult( SQLPrepare(ODBCCursor.FSTMTHandle, PChar(buf), Length(buf)), @@ -855,6 +855,7 @@ begin stSysTables : Res:=SQLTables (ODBCCursor.FSTMTHandle, nil, 0, nil, 0, nil, 0, TABLE_TYPE_SYSTEM, length(TABLE_TYPE_SYSTEM) ); stColumns : Res:=SQLColumns(ODBCCursor.FSTMTHandle, nil, 0, nil, 0, @ODBCCursor.FQuery[1], length(ODBCCursor.FQuery), nil, 0 ); stProcedures: Res:=SQLProcedures(ODBCCursor.FSTMTHandle, nil, 0, nil, 0, nil, 0 ); + stIndexes : Res:=SQLStatistics(ODBCCursor.FSTMTHandle, nil, 0, nil, 0, @ODBCCursor.FQuery[1], length(ODBCCursor.FQuery), SQL_INDEX_ALL, SQL_QUICK); else Res:=SQLExecute(ODBCCursor.FSTMTHandle); //SQL_NO_DATA returns searched update or delete statement that does not affect any rows end; {case} @@ -1531,7 +1532,7 @@ end; function TODBCConnection.GetSchemaInfoSQL(SchemaType: TSchemaType; SchemaObjectName, SchemaObjectPattern: string): string; begin - if SchemaType in [stTables, stSysTables, stColumns, stProcedures] then + if SchemaType in [stTables, stSysTables, stColumns, stProcedures, stIndexes] then begin if SchemaObjectName<>'' then Result := SchemaObjectName