I have not seen InfoPathg freeze before but I have seen it act that way. The processor will go to 100% and it will not respond but eventually it will get all the way through processing the data. Probably the most I have had is a 1000 records from a SQL database. So i think you have to be patient.
However, 30 rows, must mean there is alot of data in those rows. How many views do you have? Are they all necessary? There are some good threads on here at looking at efficiency and good design to minimize some of these performance issues.
I would wait it out to finish and verify that your query is actually returning 30 rows and not much more.
I would also recommend looking at using SQL Express and for that matter the Database Accelerator web services so that you are not required to use a "database" type InfoPath form. With web services you could also possibly refine your query and it would be faster in general.
Qdabra Database Accelerator Suite Version 2.0 - Developer