I'm in the middle of porting a DBIx::Class based application to the firebird database, and thus DBD::InterBase.
On insert statements I get the error message
Can't locate DBI object method "last_insert_rowid" via package "DBD::I +nterBase::db" at /usr/share/perl5/DBIx/Class/Storage/DBI.pm line 1275 +.
which means that DBD::InterBase doesn't seem to support the last_insert_id method as DBIx::Class expects.
Ironically during the build process a file InterBase.xsi is generated, which contains such a method:
#ifdef dbd_db_last_insert_id void last_insert_id(dbh, catalog, schema, table, field, attr=Nullsv) SV * dbh SV * catalog SV * schema SV * table SV * field SV * attr CODE: { D_imp_dbh(dbh); ST(0) = dbd_db_last_insert_id(dbh, imp_dbh, catalog, schema, table +, field, attr); } #endif
So there seems to be support for last_insert_id, but it's not enabled. How can I enable it? If I simply remove the #ifdef and #endif lines from that file, I get this message many times during make test:
install_driver(InterBase) failed: Can't load '/home/moritz/tmp/DBD-Int +erBase-0.48/blib/arch/auto/DBD/InterBase/InterBase.so' for module DBD +::InterBase: /home/moritz/tmp/DBD-InterBase-0.48/blib/arch/auto/DBD/I +nterBase/InterBase.so: undefined symbol: dbd_db_last_insert_id at /us +r/lib/perl/5.10/DynaLoader.pm line 196.
Or is there any other simple way to get DBIx::Class + DBD::InterBase working, without digging deep into both and writing a DBIx::Class::Storage::DBI::Interbase module or so?
In reply to Building DBD::InterBase with last_insert_id by moritz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |