Shared Function IsActionQuery(ByVal strQuery As String) As Boolean
strQuery = RemoveComments(strQuery).ToUpper
Dim blnActionsPresent = ((InStr(strQuery, "UPDATE", CompareMethod.Text) And Not InStr(strQuery, "[UPDATE]", CompareMethod.Text)) Or _
(InStr(strQuery, "INSERT", CompareMethod.Text) And Not InStr(strQuery, "[INSERT]", CompareMethod.Text)) Or _
(InStr(strQuery, "DELETE", CompareMethod.Text) And Not InStr(strQuery, "[DELETE]", CompareMethod.Text)) Or _
(InStr(strQuery, "DROP", CompareMethod.Text) And Not InStr(strQuery, "[DROP]", CompareMethod.Text)) Or _
(InStr(strQuery, "TRUNCATE", CompareMethod.Text) And Not InStr(strQuery, "[TRUNCATE]", CompareMethod.Text)))
If blnActionsPresent Then
Dim intSelectPos As Integer = strQuery.LastIndexOf("SELECT")
Dim intDeletePos As Integer = strQuery.LastIndexOf("DELETE")
Dim intUpdatePos As Integer = strQuery.LastIndexOf("UPDATE")
Dim intDropPos As Integer = strQuery.LastIndexOf("DROP")
Dim intTruncatePos As Integer = strQuery.LastIndexOf("TRUNCATE")
Return Not (intSelectPos > intDeletePos) Or (intSelectPos > intUpdatePos) Or (intSelectPos > intDropPos) Or _
(intSelectPos > intTruncatePos)
Else
Return False
End If
End Function