thanks..

They're all in the one Sqlite file already aren't they? Sqlite will have no issue with a single table of that size: the default database limits are typically 1 billion 1k pages and a table can use all that.
i tested but this error returned :
Qt Code:
  1. database disk image is malformed
To copy to clipboard, switch view to plain text mode 

Your examples doesn't show that you wanted to use a regular expression. Sqlite doesn't have a regular expression matching ability by default; you have to provide an implementation of that yourself. See http://stackoverflow.com/questions/5...a-sqlite-query.
i know Sqlite doesn't have a regular expression by default
i enabled it by myself

Qt Code:
  1. QString query = QString("Select count(id) From b%1 Where text REGEXP '%%2%' Limit 0,1 ; ").arg(bookTables.at(rowBook)).arg(searchPatterned);
To copy to clipboard, switch view to plain text mode 

Line 12 of your example is a select returning the count(*) aggregate without grouping of any sort. This will always return one row and only one row, but you have a limit clause.
i don't want to show all result in each book
but just find that matched book name and count of result
then by clicking in book list find all result of selected book :
QString("Select text,page From b%1 Where text REGEXP '%2' ; ").arg(item->data(12).toString()).arg(searchPatterned);