Version: 1.0.0
query_parser.cpp
Go to the documentation of this file.
1 #include "wx/database/wxprec.h"
2 
3 bool IsEmptyQuery(const wxString& strQuery)
4 {
5  wxString strQueryCopy(strQuery);
6  strQueryCopy.Replace(_(";"), wxT("")); // Remove all query delimiting semi-colons
7  return (strQueryCopy.Trim(true).Trim(false) == wxEmptyString);
8 }
9 
10 wxArrayString ParseQueries(const wxString& strQuery)
11 {
12  wxArrayString returnArray;
13  bool bInQuote = false;
14  int nLast = 0;
15 
16  for ( int i=0; i<(int)strQuery.Length(); i++ )
17  {
18  if ( strQuery.SubString(i, i) == _T("'") )
19  bInQuote = !bInQuote;
20  else if ( strQuery.SubString(i, i) == _T(";") && !bInQuote )
21  {
22  wxString str;
23  str << strQuery.SubString(nLast, i);
24  if (!IsEmptyQuery(str))
25  returnArray.Add( str );
26 
27  nLast = i + 1;
28  }
29  }
30 
31  if ( nLast < (int)strQuery.Length() -1 )
32  {
33  wxString str;
34  str << strQuery.SubString(nLast, strQuery.Length() - 1) << _T(";");
35  if (!IsEmptyQuery(str))
36  returnArray.Add( str );
37  }
38 
39  return returnArray;
40 }
41 
wxArrayString ParseQueries(const wxString &strQuery)
bool IsEmptyQuery(const wxString &strQuery)
Definition: query_parser.cpp:3