DBD-DtfSQLmac
view release on metacpan or search on metacpan
PREINIT:
int henv = 0; /* environment handle */
int hcon = 0; /* connection handle */
int htra = 0; /* transaction handle */
unsigned short err = 0; /* error code */
char * errstr = ""; /* error message */
unsigned char connected = 0; /* connected flag */
unsigned char dbExists = 0; /* dbExists flag */
unsigned char dbConsistent = 0; /* dbConsistent flag */
unsigned char network = 0; /* indicates a network connection */
PPCODE:
{
// First, we always need an environment handle before
// we are able to do anything else.
// NOTE
// Currently, the number of environment handles which may exist at a time is restricted to one.
if ( (err = DtfEnvCreate(&henv) ) != DTF_ERR_OK) {
errstr = "ERROR(dtf_connect): Can't create environment";
henv = 0;
EXTEND(SP, 5); /* extend Perl stack for 5 SVs (return values) */
PUSHs(sv_2mortal(newSViv(henv))); /* henv ok */
PUSHs(sv_2mortal(newSViv(hcon))); /* hcon ok */
PUSHs(sv_2mortal(newSViv(htra))); /* htra ok */
PUSHs(sv_2mortal(newSViv(err))); /* error code == 0 */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message == '', let Perl determine the length */
XSRETURN(5); /* return from XSUB */
//return ( $henv, $hcon, $htra, $err, $errstr );
} // end PPCODE
void
dtf_disconnect (henv, hcon, htra)
int henv
int hcon
int htra
PREINIT:
unsigned short err = 0; /* error code */
char * errstr = ""; /* error message */
unsigned char connected = 0; /* connected flag */
PPCODE:
{
if (htra != DTFHANDLE_NULL) {
if ( (err = DtfTraDestroy(&htra) ) != DTF_ERR_OK) {
errstr = "ERROR(dtf_disconnect): Can't destroy transaction handle";
EXTEND(SP, 2); /* extend Perl stack for 2 SVs (return values) */
PUSHs(sv_2mortal(newSViv(err))); /* error code */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message, let Perl determine the length */
XSRETURN(2); /* return from XSUB */
} //if henv
// everything is fine here
EXTEND(SP, 2); /* extend Perl stack for 2 SVs (return values) */
PUSHs(sv_2mortal(newSViv(err))); /* error code */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message, let Perl determine the length */
XSRETURN(2); /* return from XSUB */
//return ($err, $errstr);
}// end PPCODE
blib/lib/Mac/DtfSQL.xs view on Meta::CPAN
PREINIT:
int henv = 0; /* environment handle */
int hcon = 0; /* connection handle */
int htra = 0; /* transaction handle */
unsigned short err = 0; /* error code */
char * errstr = ""; /* error message */
unsigned char connected = 0; /* connected flag */
unsigned char dbExists = 0; /* dbExists flag */
unsigned char dbConsistent = 0; /* dbConsistent flag */
unsigned char network = 0; /* indicates a network connection */
PPCODE:
{
// First, we always need an environment handle before
// we are able to do anything else.
// NOTE
// Currently, the number of environment handles which may exist at a time is restricted to one.
if ( (err = DtfEnvCreate(&henv) ) != DTF_ERR_OK) {
errstr = "ERROR(dtf_connect): Can't create environment";
henv = 0;
blib/lib/Mac/DtfSQL.xs view on Meta::CPAN
EXTEND(SP, 5); /* extend Perl stack for 5 SVs (return values) */
PUSHs(sv_2mortal(newSViv(henv))); /* henv ok */
PUSHs(sv_2mortal(newSViv(hcon))); /* hcon ok */
PUSHs(sv_2mortal(newSViv(htra))); /* htra ok */
PUSHs(sv_2mortal(newSViv(err))); /* error code == 0 */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message == '', let Perl determine the length */
XSRETURN(5); /* return from XSUB */
//return ( $henv, $hcon, $htra, $err, $errstr );
} // end PPCODE
void
dtf_disconnect (henv, hcon, htra)
int henv
int hcon
int htra
PREINIT:
unsigned short err = 0; /* error code */
char * errstr = ""; /* error message */
unsigned char connected = 0; /* connected flag */
PPCODE:
{
if (htra != DTFHANDLE_NULL) {
if ( (err = DtfTraDestroy(&htra) ) != DTF_ERR_OK) {
errstr = "ERROR(dtf_disconnect): Can't destroy transaction handle";
EXTEND(SP, 2); /* extend Perl stack for 2 SVs (return values) */
PUSHs(sv_2mortal(newSViv(err))); /* error code */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message, let Perl determine the length */
XSRETURN(2); /* return from XSUB */
blib/lib/Mac/DtfSQL.xs view on Meta::CPAN
} //if henv
// everything is fine here
EXTEND(SP, 2); /* extend Perl stack for 2 SVs (return values) */
PUSHs(sv_2mortal(newSViv(err))); /* error code */
PUSHs(sv_2mortal(newSVpv(errstr, 0))); /* error message, let Perl determine the length */
XSRETURN(2); /* return from XSUB */
//return ($err, $errstr);
}// end PPCODE
( run in 2.123 seconds using v1.01-cache-2.11-cpan-71847e10f99 )