Frequently Asked Questions:


Q. I am getting an java.lang.AbstractMethod error when i try to use my driver ?
A. This is probably because the application was trying to execute a method present in the JDBC api which was not available in your driver. Goat assumes that the jdbc drivers being used support the JDBC 2.0 api. Contact your driver vendor to get a driver which supports JDBC 2.0


Q. Why do i get the text "Warning !!! : <message text>" in my consle when I run goat ?
A. Goat expects the jdbc driver which is being used to display the database information be fully JDBC 2.0 compliant. Unfortunately however that is not the case with all the drivers. This message is displayed on the console when goat tries to execute a JDBC 2.0 method which is not supported by the driver. In most cases goat will try to use an alternative method to execute the task (which will be much slower than the time taken than the right JDBC 2.0 method) and continue forward without interruption. However sometimes it might not be possible to continue on because of driver limitation, in which case an error dialog will be displayed to the user with the correct exception.


Q. The "Smart Query" feature is generating incorrect queries.
A. "Smart Query" is designed to work only for simple queries. If you have complex queries containing joins/intersection/inner queries/inline views etc it is not guaranteed to work correctly.


Q. How does goat load my drivers without me having to changing the classpath ?
A.
Goat uses a special Boot class loader during startup. The Boot class loader is derived from the system class loader. When you change your driver infomation via the "Load Driver" dialog, the application restarts itself. The Boot class loader reads the driver information saved by this dialog and loads all your JDBC drivers. That way you do not have to mess around with cumbersome shell scripts to load drivers. Note that if you have already set the drivers in the class path before starting Goat, they will still remain there - and you can connect to your database without having to load any drivers via the user-interface. Goat does not over-write the classpath, just extends it to make life easier for users.


Q. Can I use Native JDBC Drivers (eg. ORACLE OCI) with Goat ?
A.
If your native drivers support JDBC 2.0, yes you certainly can use them. However there is one extra step to perform before you can use them. The native drivers typically require DLL's in the system path to be present before they can be used. So you will have to manually include them in your PATH before you can use them inside Goat. Otherwise you might get "UnsatisfiedLinkError " when you try to connect to your database using these drivers.