GNOME Bugzilla – Bug 64385
Port gda-interbase-server to the new server API
Last modified: 2004-12-22 21:47:04 UTC
All the basic stuff is now implemented for the GNOME 2 version, so, to sum up, here are the methods that can be implemented with the current code for each provider: * open_connection * close_connection * execute_command -> This returns a GList of GdaServerRecordset's, and the command text can be one or more commands (separated by ';'). Also, in the GdaCommand object received as parameter to this method, there's a GdaCommandType member, whose value determines the kind of command: - GDA_COMMAND_TYPE_SQL -> text is 1 or more SQL commands - GDA_COMMAND_TYPE_TABLE -> text is 1 or more table names. You must return the result of 'SELECT * FROM ?' for each given table - GDA_COMMAND_TYPE_XML -> text is a XML buffer containing 1 or more XML queries (please talk to me before even trying to start working on this) * begin_transaction, commit_transaction, rollback_transaction: those all receive a 'const gchar *trans_id' parameter. If the provider supports named transactions, please use this trans_id value as the name for the transaction. If it does not, just ignore it * supports: this function is quite simple. It just gets a GNOME_Database_Feature argument (which is a enum defined in the IDL), and the provider's implementation just has to return TRUE/FALSE if the given feature is supported or not.
* get_schema: this one gets a GNOME_Database_Connection_Schema value and returns a GdaServerRecordset containing rows with information about procedures, tables, types and views of the connection.
A new SCHEMA has been added to the IDL: SCHEMA_FIELDS, which will be used to retrieve the description of all the fields in a table. The providers should return a recordset containing: * name of the field * data type * size * scale * primary key? * unique key? * references (name of table.field referenced)
The recordset returned by SCHEMA FIELDS should also include a column to tell if the field is defined as not null. So, by now, it should contain: * name of the field: string * data type: integer (one of GDA_TYPE_*) * size: integer * scale: integer * primary key: boolean * unique key: boolean * references (name of table.field referenced): string
New schemas have been added, that must be implemented by the different providers. They are: * SCHEMA_INDEXES: return a list of all indexes in the database * SCHEMA_DATABASES: list of all databases available in the connection. * SCHEMA_USERS: list of users * SCHEMA_SEQUENCES: list of sequences
Another thing to implemente -> see bug #78845
We will support FireBird, the free version of Interbase. *** This bug has been marked as a duplicate of 83016 ***