330 lRetVal = cSQL.PrepareStatement(strSQL, lReturnStatementHandle, lDBHdl, "GetSQLType")
340 If lRetVal <> 0 Then
350 GetSQLType = Invalid
360 Exit Function 'as PrepareStatement will have shown the error
370 End If
380 If bCheckWithReadOnly Then
'sqlite3_stmt_readonly(X) interface returns true (non-zero) if and only if the
'prepared statement X makes no direct changes to the content of the database file
390 If sqlite3_stmt_readonly(lReturnStatementHandle) > 0 Then
400 GetSQLType = DataProducing
410 Else
420 GetSQLType = Non_DataProducing
430 End If
440 Else 'If bCheckWithReadOnly
450 lColumns = cSQL.GetColumnCount(lReturnStatementHandle, "GetSQLType", bFinalize = False, lDBHdl)
'no need here to check for invalid statement (would produce lColumns = -1) as this is done in PrepareStatement
'-------------------------------------------------------------------------------------------------------------
460 If lColumns > 0 Then
470 GetSQLType = DataProducing
480 Else
490 GetSQLType = Non_DataProducing
500 End If
510 End If 'If bCheckWithReadOnly