Using language with terms like query, filters, and records are all part of the system model - the underlying way the system works - the language of developers.

Instead use the language of the user model - the way the user is thinking.

Eg: The user wants results - so generic message might be:

simple: No results found

longer: No results containing all your search terms were found

Where you place it depends on the context within the layout, but it should always be clearly visible. Without knowing what your layout is like, perhaps try adding it like a slightly faded watermark to the background of the table, horizontally centered within the viewable area and 38% of the way down from the top (golden ratio!).

+1 exactly how I did it - I have to check for my positioning though, golden ratio seems like a great idea!
–
JanJun 21 '11 at 8:03

As I see it (without beint a native English speaker) the word "records" in an IT context means the parts that make a computer file, but it also has a meaning to normal people like when somebody says "let me check my records", that is similar to the computer file related meaning but is not IT specific. So I'll go with the generic "no records found".
–
Juan LanusNov 18 '14 at 20:20