DBD-DtfSQLmac

 view release on metacpan or  search on metacpan

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;

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 */
				

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

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 )