DBD-Solid
view release on metacpan or search on metacpan
ST(0) = sv_mortalcopy(DBIc_ERRSTR(imp_xxh));
MODULE = DBD::Solid PACKAGE = DBD::Solid::dr
void
disconnect_all(drh)
SV * drh
CODE:
if (!dirty && !SvTRUE(perl_get_sv("DBI::PERL_ENDING",0))) {
D_imp_drh(drh);
sv_setiv(DBIc_ERR(imp_drh), (IV)1);
sv_setpv(DBIc_ERRSTR(imp_drh),
(char*)"disconnect_all not implemented");
DBIh_EVENT2(drh, ERROR_event,
DBIc_ERR(imp_drh), DBIc_ERRSTR(imp_drh));
XSRETURN(0);
}
/* perl_destruct with perl_destruct_level and $SIG{__WARN__} set */
/* to a code ref core dumps when sv_2cv triggers warn loop. */
if (perl_destruct_level)
perl_destruct_level = 0;
XST_mIV(0, 1);
# -----------------------------------------------------------
# database level interface
# ------------------------------------------------------------
MODULE = DBD::Solid PACKAGE = DBD::Solid::db
void
_login(dbh, dbname, uid, pwd)
SV * dbh
char * dbname
char * uid
char * pwd
CODE:
ST(0) = dbd_db_login(dbh, dbname, uid, pwd) ? &sv_yes : &sv_no;
void
commit(dbh)
SV * dbh
CODE:
ST(0) = dbd_db_commit(dbh) ? &sv_yes : &sv_no;
void
rollback(dbh)
SV * dbh
CODE:
ST(0) = dbd_db_rollback(dbh) ? &sv_yes : &sv_no;
void
disconnect(dbh)
SV * dbh
CODE:
D_imp_dbh(dbh);
if ( !DBIc_ACTIVE(imp_dbh) ) {
XSRETURN_YES;
}
/* Check for disconnect() being called whilst refs to cursors */
/* still exists. This needs some more thought. */
if (DBIc_ACTIVE_KIDS(imp_dbh) && DBIc_WARN(imp_dbh) && !dirty) {
warn("disconnect(%s) invalidates %d active cursor(s)",
SvPV(dbh,na), (int)DBIc_ACTIVE_KIDS(imp_dbh));
}
ST(0) = dbd_db_disconnect(dbh) ? &sv_yes : &sv_no;
void
DESTROY(dbh)
SV * dbh
PPCODE:
D_imp_dbh(dbh);
ST(0) = &sv_yes;
if (!DBIc_IMPSET(imp_dbh)) { /* was never fully set up */
if (DBIc_WARN(imp_dbh) && !dirty && dbis->debug >= 2)
warn("Database handle %s DESTROY ignored - never set up",
SvPV(dbh,na));
}
else {
if (DBIc_IADESTROY(imp_dbh)) { /* want's ineffective destroy */
DBIc_ACTIVE_off(imp_dbh);
}
if (DBIc_ACTIVE(imp_dbh)) {
if (DBIc_WARN(imp_dbh) && !dirty)
warn("Database handle destroyed without explicit disconnect");
dbd_db_disconnect(dbh);
}
dbd_db_destroy(dbh);
}
void
STORE(dbh, keysv, valuesv)
SV * dbh
SV * keysv
SV * valuesv
CODE:
ST(0) = &sv_yes;
if (!dbd_db_STORE(dbh, keysv, valuesv))
if (!DBIS->set_attr(dbh, keysv, valuesv))
ST(0) = &sv_no;
void
FETCH(dbh, keysv)
SV * dbh
SV * keysv
CODE:
SV *valuesv = dbd_db_FETCH(dbh, keysv);
if (!valuesv)
valuesv = DBIS->get_attr(dbh, keysv);
ST(0) = valuesv; /* dbd_db_FETCH did sv_2mortal */
# -- end of DBD::Solid::db
# ------------------------------------------------------------
# statement interface
# ------------------------------------------------------------
MODULE = DBD::Solid PACKAGE = DBD::Solid::st
void
_prepare(sth, statement, attribs=Nullsv)
( run in 0.796 second using v1.01-cache-2.11-cpan-39bf76dae61 )