PAB3-DB-Driver-Mysql

 view release on metacpan or  search on metacpan

Mysql.xs  view on Meta::CPAN

# ******************************************************************************/

void
fetch_names( resid )
	void * resid;
PREINIT:
	dMY_CXT;
	MYSQL_RES *res = NULL;
	MYSQL_FIELD *fields;
	int num_fields, i;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		res = ( (MY_RES *) resid )->res;
		break;
	case MY_TYPE_STMT:
		res = ( (MY_STMT *) resid )->meta;
		break;
	default:
		goto exit;
	}

Mysql.xs  view on Meta::CPAN


void
fetch_field( resid, offset = -1 )
	void * resid;
	long offset;
PREINIT:
	dMY_CXT;
	MYSQL_RES *res;
	MYSQL_FIELD *field;
	unsigned int flags;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		res = ( (MY_RES *) resid )->res;
		break;
	case MY_TYPE_STMT:
		res = ( (MY_STMT *) resid )->meta;
		break;
	default:
		goto exit;
	}

Mysql.xs  view on Meta::CPAN

fetch_row( resid )
	void * resid;
PREINIT:
	dMY_CXT;
	MY_RES *res;
	MYSQL_ROW row;
	DWORD *lengths;
	MY_STMT *stmt;
	MYSQL_BIND *result;
	DWORD num_fields, i;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		res = (MY_RES *) resid;
		row = mysql_fetch_row( res->res );
		if( ! row ) goto error;
		num_fields = mysql_num_fields( res->res );
		lengths = mysql_fetch_lengths( res->res );
		EXTEND( SP, num_fields );
		for( i = 0; i < num_fields; i ++ ) {
			if( row[i] )

Mysql.xs  view on Meta::CPAN

void
fetch_col( resid )
	void * resid;
PREINIT:
	dMY_CXT;
	MY_RES *res;
	MYSQL_ROW row;
	DWORD *lengths;
	MY_STMT *stmt;
	MYSQL_BIND *result;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		res = (MY_RES *) resid;
		EXTEND( SP, res->numrows );
		while( ( row = mysql_fetch_row( res->res ) ) ) {
			lengths = mysql_fetch_lengths( res->res );
			if( lengths[0] > 0 )
				XPUSHs( sv_2mortal( newSVpvn( row[0], lengths[0] ) ) );	
			else
				XPUSHs( &PL_sv_undef );	

Mysql.xs  view on Meta::CPAN

	void * resid;
PREINIT:
	dMY_CXT;
	MY_RES *res;
	MYSQL_ROW row;
	MYSQL_FIELD *fields;
	MY_STMT *stmt;
	MYSQL_BIND *result;
	DWORD *lengths;
	DWORD num_fields, i;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		res = (MY_RES *) resid;
		row = mysql_fetch_row( res->res );
		if( ! row ) goto error;
		num_fields = mysql_num_fields( res->res );
		lengths = mysql_fetch_lengths( res->res );
		fields = mysql_fetch_fields( res->res );
		EXTEND( SP, num_fields * 2 );
		for( i = 0; i < num_fields; i ++ ) {

Mysql.xs  view on Meta::CPAN

# ******************************************************************************/

void
fetch_lengths( resid )
	void * resid;
PREINIT:
	dMY_CXT;
	DWORD *lengths;
	DWORD num_fields, i;
	MY_STMT *stmt;
PPCODE:
	switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
	case MY_TYPE_RES:
		lengths = mysql_fetch_lengths( ( (MY_RES *) resid )->res );
		if( lengths ) {
			num_fields = mysql_num_fields( ( (MY_RES *) resid )->res );
			EXTEND( SP, num_fields );
			for( i = 0; i < num_fields; i ++ ) {
				XPUSHs( sv_2mortal( newSVuv( lengths[i] ) ) );	
			}
		}

Mysql.xs  view on Meta::CPAN


void
show_catalogs( linkid = 0, wild = NULL )
	void * linkid;
	const char *wild;
PREINIT:
	dMY_CXT;
	MY_CON *con;
	MYSQL_RES *res;
	MYSQL_ROW row;
PPCODE:
	if( ! ( linkid = my_verify_linkid( &MY_CXT, linkid ) ) ) goto error;
	con = (MY_CON *) linkid;
	res = mysql_list_dbs( con->conid, wild );
	if( res ) {
		while( ( row = mysql_fetch_row( res ) ) ) {
			if( row[0] != 0 ) {
				XPUSHs( sv_2mortal( newSVpvn( row[0], strlen( row[0] ) ) ) );
			}
		}
		mysql_free_result( res );

Mysql.xs  view on Meta::CPAN

	const char *db;
	const char *schema;
	const char *wild;
PREINIT:
	dMY_CXT;
	MY_CON *con;
	MYSQL_RES *res;
	MYSQL_ROW row;
	char sql[512], *p1;
	AV *av;
PPCODE:
	if( ! ( linkid = my_verify_linkid( &MY_CXT, linkid ) ) ) goto error;
	con = (MY_CON *) linkid;
	if( db && db[0] != '\0' ) {
		p1 = my_strcpy( sql, "SHOW TABLES FROM `" );
		p1 = my_strcpy( p1, db );
		p1 = my_strcpy( p1, "`" );
		if( wild && wild[0] != '\0' ) {
			p1 = my_strcpy( p1, " LIKE " );
			p1 = my_strcpy( p1, wild );
		}

Mysql.xs  view on Meta::CPAN

	const char *schema = NULL;
	const char *db = NULL;
	const char *wild = NULL;
	int itemp = 0;
	MY_CON *con;
	MYSQL_RES *res;
	MYSQL_ROW row;
	int numfields, numrows, r;
	char sql[512], *p1;
	AV *av;
PPCODE:
    if( items < ( SvIOK( ST(0) ) ? 2 : 1 ) || items > 5 )
		Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_fields(linkid = 0, table, schema = NULL, db = NULL, wild = NULL)" );
	if( SvIOK( ST( itemp ) ) ) {
		linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
		itemp ++;
	}
	table = (const char *) SvPV_nolen( ST( itemp ) );
	itemp ++;
	if( itemp < items ) {
		schema = (const char *) SvPV_nolen( ST( itemp ) );

Mysql.xs  view on Meta::CPAN

	const char *table = NULL;
	const char *schema = NULL;
	const char *db = NULL;
	MY_CON *con;
	MYSQL_RES *res;
	MYSQL_ROW row;
	char sql[512], *p1;
	int step, num_fields, num_rows, itemp = 0;
	long r;
	AV *av;
PPCODE:
    if( items < ( SvIOK( ST(0) ) ? 2 : 1 ) || items > 4 )
		Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_index(linkid = 0, table, schema = NULL, db = NULL)" );
	if( SvIOK( ST( itemp ) ) ) {
		linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
		itemp ++;
	}
	table = (const char *) SvPV_nolen( ST( itemp ) );
	itemp ++;
	if( itemp < items ) {
		schema = (const char *) SvPV_nolen( ST( itemp ) );



( run in 2.625 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )