Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Last Insert ID in MS Access (example using @@IDENTITY)

by bobf (Monsignor)
on Jul 24, 2010 at 07:04 UTC ( #851127=note: print w/ replies, xml ) Need Help??


in reply to Last Insert ID in MS Access

The following example works for me. Applicable versions are shown inline:

use strict; use warnings; use DBI; #MS Access 2003 #DBI->installed_versions; # Perl : 5.008008 (MSWin32-x86-multi-thread) # OS : MSWin32 (5.0) # DBI : 1.59 # DBD::ODBC : 1.13 # Connect to the db my $dbpathfile = 'C:\testdb.mdb'; my $db_driver = 'Microsoft Access Driver (*.mdb)'; my $dsn = "DBI:ODBC:DRIVER=$db_driver;DBQ=$dbpathfile"; my $dbh = DBI->connect( $dsn, '', '', { RaiseError => 1, AutoCommit => + 1 } ) or die $DBI::errstr; # Create table for test data my $tblname = 'test_table'; my $tbl_sql = join( ' ', 'CREATE TABLE', $tblname, '(ID AUTOINCREMENT, field1 TEXT,', 'CONSTRAINT', $tblname . '_pk', 'PRIMARY KEY +(ID))' ); $dbh->do( $tbl_sql ); # Insert test data my $insert_sql = join( ' ', 'INSERT INTO', $tblname, '( field1 ) VALUE +S ( ? )' ); my $sth = $dbh->prepare( $insert_sql ); $sth->execute( 'test data' ); # Use @@IDENTITY to get the last insert ID # See http://support.microsoft.com/kb/815629 my $id_sql = 'SELECT @@IDENTITY'; $sth = $dbh->prepare( $id_sql ); $sth->execute; my $id = $sth->fetchrow_array; print "Last insert ID is: $id\n";

Thanks to james2vegas and his post for seeding this approach. Thanks also to mje for considering adding this example to the docs for DBD::ODBC.


Comment on Re: Last Insert ID in MS Access (example using @@IDENTITY)
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://851127]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2015-07-07 05:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (87 votes), past polls