Hi all, Because of various things, I have needed to move some stuff that I've been working on onto a Postgres DB. It makes very heavy use of ADO from Excel, and so I was running into a number of little annoyances with the existing OLE DB provider... Especially I could not get parameterised queries to run, nor could I run multiple commands in one block (which I need for speed to load big chunks of data). So, I started hacking on the Provider, and ended up almost completely rewriting it. I have placed a copy at: http://people.freebsd.org/~reg/pgoledb-20061215.zip Things that it has gained: - Support for the IColumnsRowset interface, which means that ADO's client cursor engine doesn't need to parse the SQL to make up UPDATE and INSERT queries. - Support for IDBInfo and IDBSchemaRowset interfaces, which also help ADO CCE. - Runs multiple queries (using PQexec) if you pass a command with no parameters and IID_NULL for the return record set. - Proper type handling. - Passing all of the connection string options (hostaddr, ssl, etc.) - Lots of bug fixes. - Much cleaner code (IMHO), no more STL or exceptions. Things it has lost: - IMultipleRowsets. libpq can't return multiple results. What was there was a complete hack. - Parsing of parameters on stored procedures. This was a hack, which was being done at the wrong place in the code. - Support for some types (_text, utinyint, varcharci) - TIMESTAMP WITH TIMEZONE is reported in GMT not local, since there is no OLE DB type for this (so you can't go backwards). - Probably some other things... I've been testing the code some, and it's working with my application, but there are probably still many bugs. I would love it if people could also test it and report errors! I'm trying to get the OLE DB conformance tests up and running, and hopefully I will find more bugs that way. I still need to: - redo some of the Schema support (realised my design was bad...) - tidy up some of the tracing. - prepared queries. - there are a number of properties where I'm not sure of the right value. - add more support for pg_types (especially the array/vector types). - check threading and locking. - check error reporting. - probably a few other things... I hope this is useful to someone. I would welcome any patches to add other features. I'm managing this in a local CVS repository at the moment... Not quite sure what I'm going to do about this and the PgFoundry project yet. Regards, -Jeremy