raise exceptions in DataAdaptor wrappers
The API had to be massaged because Python doesn't do pass by reference at the expense of the error return code. Instead we can raise exceptions in DataAdaptor wrappers when an error occurs. currently we are reporting the error but raising an exception.