Re: [CDBI] ODBC last_insert_id Problems

Rhesa Rozendaal <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
James Hargreaves wrote:
> Hi guys!
> 
> I normally use MySQL as my backend database, but for a particularly
> cheapskate project (MySQL costs £25 per year on my hosting) I have
> been forced to use MS Access accessed via ODBC.
> 
> This was fine until I started trying to insert items into the database
> using the usual My::Class->insert(...) method. Items are inserted
> correctly but I receive an error due to there being no support (so far
> as I am aware) for the LAST_INSERT_ID function in MS Access. All this
> is probably not helped by my not being able to use the latest version
> of Class-DBI since I am running on windows and it doesn't compile
> correctly :(

Have a look at Class::DBI::MSSQL. It adds last_insert_id support for 
Microsofts databases, and works well with Access and SQL Server.

> So basically - what can I do? I cannot change the database - I might
> be able to access it directly (rather than through ODBC) but I am not
> sure if this will help or how to do this? The problem occurs in the
> _auto_increment_value method (called in the _insert_row method) and I
> can't see any way to fix this function without trashing something
> else.


FWIW, I've had better results with DBD::ADO than with DBD::ODBC, at least in 
combination with Access. It has its own set of quirks, but e.g. unicode 
support is much better.

HTH,

Rhesa
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.