An article which explains the explanations

Code: Select all
CompilerIf #PB_Compiler_Debugger
Procedure.I _DatabaseQuery(aSource.S, aLine.I, aProcedure.S, aDatabase.I, aRequest.S)
Protected.I lintResult
Protected.S lstrExplain
lstrExplain = "EXPLAIN QUERY PLAN " + aRequest
Debug aSource + " - " + StrU(aLine) + " - " + aProcedure
Debug lstrExplain
lintResult = DatabaseQuery(aDatabase, lstrExplain)
If lintResult
While NextDatabaseRow(aDatabase)
Debug StrU(GetDatabaseLong(aDatabase, 0)) + ", " + StrU(GetDatabaseLong(aDatabase, 1)) + ", " +
StrU(GetDatabaseLong(aDatabase, 2)) + ", " + GetDatabaseString(aDatabase, 3) + "."
Wend
EndIf
Debug #Empty$
lintResult = DatabaseQuery(aDatabase, aRequest)
ProcedureReturn lintResult
EndProcedure
Macro DatabaseQuery(aDatabase, aRequest)
_DatabaseQuery(#PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Procedure, aDatabase, aRequest)
EndMacro
CompilerEndIf