I have been working on a lot of codegeneration techniques with SharePoint and approched the BDC today. It seems that it doesn't like things like Guids that much when working with Search Stored Procedures. It will create a default Guid instance and pass that value EVERY TIME! And it will not allow "Wildcard" on Guid Types.
In order to get around this little fact, you have to build a dynamic sql stored procedure (that passes through the query in the proper way to avoid sql injection) that takes all string parameters! Even then there are some types that cannot be compared with the "like" sql operator.
I have everything working like a charm now (keeping to simple types), but man…that was a day's worth of work!