Above all, all database access function has been put in one single file with a set up functions to allow me to add other types of connections later. In the process, I have figured out a few things about the MySQL C API that I am not so hot on.
To take one example, I'm not too keen on the naming convention of fields and columns. It seems that, in the naming of functions in the API, someone seems to think that a column and a field is the same thing. They are not.
This is how many people look at things, including myself, when we speak of relational data:
- A row is one of 0 or more rows in a database.
- A column is one of 1 or more columns in a dataset.
- A field is the "crossing" of a row and a column.
mysql_field_count - Returns the number of result columns for the most recent statement
Also, why is there both a mysql_field_count and a mysql_num_fields function? Yes, I know the use of both of them, but the former seems rather useless. Or rather, on a high-level-view, design vise, this is useless. Although it does have a use, this is mainly because of other weird aspects of the C API.
If my SQL returns just 1 result, then I get just on result. If my SQL returns more than 1 result, I might get
And all this said, the work in progress for a better implementation of teh C API, in the shape of the C Connector (Thanx Jim), there is better stuff coming here. Hey, we need a better protocol, and a better C API!
/Karlsson
1 comment:
I was also very frustrated with the field vs column thing, and this is why I renamed them all in the new Drizzle library. :) The multi-result set is just silly as well. Glad to hear there is work being done on the MySQL side as well to clean these things up.
Post a Comment