One of the downsides of the profile object is that in its default state it pushes all the data to un accessable columns in the profile tables.
I need to access the data in the profile object in the sql queries. So the only way to do this is to create my own profileprovider (the data into the datastore goes via this new provider)
Guess what, there is already prewritten profile providers out there that will do this for me :).
Heres the link to a Microsoft guy
Hao Kung thats done the hard work for us. He's documented out a tableprofileprovider for us and given us his code and notes! What a guy. Link to the samples and the whitepaper can be found
here.