亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qsql_psql.cpp

?? Trolltech公司發(fā)布的基于C++圖形開發(fā)環(huán)境
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		if ( val.at( i ) == backslash ) {		    if ( val.at( i + 1 ).isDigit() ) {			ba[ index++ ] = (char)(val.mid( i + 1, 3 ).toInt( 0, 8 ));			i += 4;		    } else {			ba[ index++ ] = val.at( i + 1 );			i += 2;		    }		} else {		    ba[ index++ ] = val.at( i++ ).unicode();		}	    }	    ba.resize( index );	    return QVariant( ba );	}	QByteArray ba;	((QSqlDriver*)driver())->beginTransaction();	Oid oid = val.toInt();	int fd = lo_open( d->connection, oid, INV_READ );#ifdef QT_CHECK_RANGE	if ( fd < 0) {	    qWarning( "QPSQLResult::data: unable to open large object for read" );	    ((QSqlDriver*)driver())->commitTransaction();	    return QVariant( ba );	}#endif	int size = 0;	int retval = lo_lseek( d->connection, fd, 0L, SEEK_END );	if ( retval >= 0 ) {	    size = lo_tell( d->connection, fd );	    lo_lseek( d->connection, fd, 0L, SEEK_SET );	}	if ( size == 0 ) {	    lo_close( d->connection, fd );	    ((QSqlDriver*)driver())->commitTransaction();	    return QVariant( ba );	}	char * buf = new char[ size ];#ifdef Q_OS_WIN32	// ### For some reason lo_read() fails if we try to read more than	// ### 32760 bytes	char * p = buf;	int nread = 0;	while( size < nread ){		retval = lo_read( d->connection, fd, p, 32760 );		nread += retval;		p += retval;	}#else	retval = lo_read( d->connection, fd, buf, size );#endif	if (retval < 0) {	    qWarning( "QPSQLResult::data: unable to read large object" );	} else {	    ba.duplicate( buf, size );	}	delete [] buf;	lo_close( d->connection, fd );	((QSqlDriver*)driver())->commitTransaction();	return QVariant( ba );    }    default:    case QVariant::Invalid:#ifdef QT_CHECK_RANGE	qWarning("QPSQLResult::data: unknown data type");#endif	;    }    return QVariant();}bool QPSQLResult::isNull( int field ){    PQgetvalue( d->result, at(), field );    return PQgetisnull( d->result, at(), field );}bool QPSQLResult::reset ( const QString& query ){    cleanup();    if ( !driver() )	return FALSE;    if ( !driver()->isOpen() || driver()->isOpenError() )	return FALSE;    setActive( FALSE );    setAt( QSql::BeforeFirst );    if ( d->result )	PQclear( d->result );    if ( d->isUtf8 ) {	d->result = PQexec( d->connection, query.utf8().data() );    } else {	d->result = PQexec( d->connection, query.local8Bit().data() );    }    int status =  PQresultStatus( d->result );    if ( status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK ) {	if ( status == PGRES_TUPLES_OK ) {	    setSelect( TRUE );	    currentSize = PQntuples( d->result );	} else {	    setSelect( FALSE );	    currentSize = -1;	}	setActive( TRUE );	return TRUE;    }    setLastError( qMakeError( "Unable to create query", QSqlError::Statement, d ) );    return FALSE;}int QPSQLResult::size(){    return currentSize;}int QPSQLResult::numRowsAffected(){    return QString( PQcmdTuples( d->result ) ).toInt();}///////////////////////////////////////////////////////////////////static bool setEncodingUtf8( PGconn* connection ){    PGresult* result = PQexec( connection, "SET CLIENT_ENCODING TO 'UNICODE'" );    int status = PQresultStatus( result );    PQclear( result );    return status == PGRES_COMMAND_OK;}static void setDatestyle( PGconn* connection ){    PGresult* result = PQexec( connection, "SET DATESTYLE TO 'ISO'" );#ifdef QT_CHECK_RANGE    int status =  PQresultStatus( result );    if ( status != PGRES_COMMAND_OK )        qWarning( "%s", PQerrorMessage( connection ) );#endif    PQclear( result );}static QPSQLDriver::Protocol getPSQLVersion( PGconn* connection ){    PGresult* result = PQexec( connection, "select version()" );    int status =  PQresultStatus( result );    if ( status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK ) {	QString val( PQgetvalue( result, 0, 0 ) );	PQclear( result );	QRegExp rx( "(\\d+)\\.(\\d+)" );	rx.setMinimal ( TRUE ); // enforce non-greedy RegExp        if ( rx.search( val ) != -1 ) {	    int vMaj = rx.cap( 1 ).toInt();	    int vMin = rx.cap( 2 ).toInt();	    if ( vMaj < 6 ) {#ifdef QT_CHECK_RANGE		qWarning( "This version of PostgreSQL is not supported and may not work." );#endif		return QPSQLDriver::Version6;	    }	    if ( vMaj == 6 ) {		return QPSQLDriver::Version6;	    } else if ( vMaj == 7 ) {		if ( vMin < 1 )		    return QPSQLDriver::Version7;		else if ( vMin < 3 )		    return QPSQLDriver::Version71;	    }	    return QPSQLDriver::Version73;	}    } else {#ifdef QT_CHECK_RANGE	qWarning( "This version of PostgreSQL is not supported and may not work." );#endif    }    return QPSQLDriver::Version6;}QPSQLDriver::QPSQLDriver( QObject * parent, const char * name )    : QSqlDriver(parent,name ? name : "QPSQL"), pro( QPSQLDriver::Version6 ){    init();}QPSQLDriver::QPSQLDriver( PGconn * conn, QObject * parent, const char * name )    : QSqlDriver(parent,name ? name : "QPSQL"), pro( QPSQLDriver::Version6 ){    init();    d->connection = conn;    if ( conn ) {	pro = getPSQLVersion( d->connection );	setOpen( TRUE );	setOpenError( FALSE );    }}void QPSQLDriver::init(){    qSqlDriverExtDict()->insert( this, new QPSQLDriverExtension(this) );    qSqlOpenExtDict()->insert( this, new QPSQLOpenExtension(this) );    d = new QPSQLPrivate();}QPSQLDriver::~QPSQLDriver(){    if ( d->connection )	PQfinish( d->connection );    delete d;    if ( !qSqlDriverExtDict()->isEmpty() ) {	QSqlDriverExtension *ext = qSqlDriverExtDict()->take( this );	delete ext;    }    if ( !qSqlOpenExtDict()->isEmpty() ) {	QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );	delete ext;    }}PGconn* QPSQLDriver::connection(){    return d->connection;}bool QPSQLDriver::hasFeature( DriverFeature f ) const{    switch ( f ) {    case Transactions:	return TRUE;    case QuerySize:	return TRUE;    case BLOB:	return pro >= QPSQLDriver::Version71;    case Unicode:	return d->isUtf8;    default:	return FALSE;    }}bool QPSQLDriver::open( const QString&,			const QString&,			const QString&,			const QString&,			int ){    qWarning("QPSQLDriver::open(): This version of open() is no longer supported." );    return FALSE;}bool QPSQLDriver::open( const QString & db,			const QString & user,			const QString & password,			const QString & host,			int port,			const QString& connOpts ){    if ( isOpen() )	close();    QString connectString;    if ( host.length() )	connectString.append( "host=" ).append( host );    if ( db.length() )	connectString.append( " dbname=" ).append( db );    if ( user.length() )	connectString.append( " user=" ).append( user );    if ( password.length() )	connectString.append( " password=" ).append( password );    if ( port > -1 )	connectString.append( " port=" ).append( QString::number( port ) );    // add any connect options - the server will handle error detection    if ( !connOpts.isEmpty() )	connectString += " " + QStringList::split( ';', connOpts ).join( " " );    d->connection = PQconnectdb( connectString.local8Bit().data() );    if ( PQstatus( d->connection ) == CONNECTION_BAD ) {	setLastError( qMakeError("Unable to connect", QSqlError::Connection, d ) );	setOpenError( TRUE );	return FALSE;    }    pro = getPSQLVersion( d->connection );    d->isUtf8 = setEncodingUtf8( d->connection );    setDatestyle( d->connection );    setOpen( TRUE );    setOpenError( FALSE );    return TRUE;}void QPSQLDriver::close(){    if ( isOpen() ) {        if (d->connection)	    PQfinish( d->connection );	d->connection = 0;	setOpen( FALSE );	setOpenError( FALSE );    }}QSqlQuery QPSQLDriver::createQuery() const{    return QSqlQuery( new QPSQLResult( this, d ) );}bool QPSQLDriver::beginTransaction(){    if ( !isOpen() ) {#ifdef QT_CHECK_RANGE	qWarning( "QPSQLDriver::beginTransaction: Database not open" );#endif	return FALSE;    }    PGresult* res = PQexec( d->connection, "BEGIN" );    if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {	PQclear( res );	setLastError( qMakeError( "Could not begin transaction", QSqlError::Transaction, d ) );	return FALSE;    }    PQclear( res );    return TRUE;}bool QPSQLDriver::commitTransaction(){    if ( !isOpen() ) {#ifdef QT_CHECK_RANGE	qWarning( "QPSQLDriver::commitTransaction: Database not open" );#endif	return FALSE;    }    PGresult* res = PQexec( d->connection, "COMMIT" );    if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {	PQclear( res );	setLastError( qMakeError( "Could not commit transaction", QSqlError::Transaction, d ) );	return FALSE;    }    PQclear( res );    return TRUE;}bool QPSQLDriver::rollbackTransaction(){    if ( !isOpen() ) {#ifdef QT_CHECK_RANGE	qWarning( "QPSQLDriver::rollbackTransaction: Database not open" );#endif	return FALSE;    }    PGresult* res = PQexec( d->connection, "ROLLBACK" );    if ( !res || PQresultStatus( res ) != PGRES_COMMAND_OK ) {	setLastError( qMakeError( "Could not rollback transaction", QSqlError::Transaction, d ) );	PQclear( res );	return FALSE;    }    PQclear( res );    return TRUE;}QStringList QPSQLDriver::tables( const QString& typeName ) const{    QStringList tl;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91农村精品一区二区在线| 久久日韩精品一区二区五区| 久久亚洲综合色一区二区三区| 亚洲综合另类小说| 国产电影一区在线| 337p粉嫩大胆色噜噜噜噜亚洲| 夜色激情一区二区| 99在线热播精品免费| 国产欧美日韩在线看| 成人国产精品免费网站| 国产精品网友自拍| 91免费观看在线| 亚洲综合区在线| 欧美日韩精品一区二区在线播放| 亚洲一区二区三区激情| 欧美中文字幕亚洲一区二区va在线| 成人免费一区二区三区视频| 91亚洲精品乱码久久久久久蜜桃 | 日本aⅴ亚洲精品中文乱码| 精品视频1区2区3区| 日本欧美在线观看| 国产亚洲综合在线| 91丨九色丨尤物| 亚洲国产sm捆绑调教视频 | 欧美日本一区二区| 另类成人小视频在线| 国产精品久久一级| 在线电影一区二区三区| 狠狠色丁香婷综合久久| 亚洲日本va午夜在线影院| 欧美三级中文字幕在线观看| 精品一二线国产| 亚洲激情成人在线| 久久久久一区二区三区四区| av电影在线不卡| 五月婷婷另类国产| 1区2区3区精品视频| 日韩一区二区三区四区| 91毛片在线观看| 粉嫩一区二区三区在线看| 午夜日韩在线电影| 亚洲欧美另类图片小说| 精品福利二区三区| 欧美一区2区视频在线观看| 91免费看片在线观看| 国产精品一区二区不卡| 亚洲成人免费在线| 亚洲一卡二卡三卡四卡| 国产精品美女久久久久aⅴ国产馆| 日韩视频免费观看高清完整版在线观看 | 国产91清纯白嫩初高中在线观看| 中文字幕五月欧美| 久久久精品2019中文字幕之3| 欧美日韩aaaaaa| 欧美日韩精品一区二区| 欧美精品丝袜中出| 欧美日韩久久不卡| 欧美一卡2卡3卡4卡| 欧美电影在哪看比较好| 欧美日韩在线免费视频| 欧美日韩高清一区二区三区| 色爱区综合激月婷婷| 欧美日韩精品欧美日韩精品| 欧美日韩激情在线| 欧美电影免费提供在线观看| 欧美成人乱码一区二区三区| 久久久噜噜噜久久人人看| 久久久久久99久久久精品网站| 久久综合精品国产一区二区三区| 精品福利一二区| 欧美国产日韩亚洲一区| 中文字幕亚洲一区二区va在线| 亚洲国产精品久久人人爱| 午夜精品久久久久久久99樱桃| 蜜桃一区二区三区在线| 国产成人激情av| 欧美片网站yy| 国产精品亲子伦对白| 亚洲一区二区三区四区五区黄| 久久99久久久欧美国产| 精品一区免费av| 91免费版在线看| 26uuu亚洲综合色欧美 | 久久精品视频在线看| 亚洲男同性视频| 韩国毛片一区二区三区| 色综合久久久久久久久久久| 精品国产乱码久久久久久久| 亚洲精品日日夜夜| 国产麻豆精品视频| 91麻豆精品国产91久久久久久| 亚洲国产精品成人综合色在线婷婷 | 极品瑜伽女神91| 欧美嫩在线观看| 依依成人综合视频| 成人综合在线观看| 国产欧美日韩一区二区三区在线观看| 日韩和的一区二区| 欧美日本在线一区| 一二三四区精品视频| 91同城在线观看| 亚洲免费在线观看视频| 懂色av中文一区二区三区| 91麻豆精品国产综合久久久久久| 亚洲精品视频自拍| 91丨九色丨尤物| 国产精品毛片大码女人| 成人免费电影视频| 国产精品二区一区二区aⅴ污介绍| 成人午夜av影视| 亚洲三级电影网站| 国产高清精品网站| 中文字幕日韩av资源站| 91福利视频在线| 亚欧色一区w666天堂| 日韩精品一区二区三区四区视频| 日本美女视频一区二区| 欧美精品一区二区三区在线播放 | 久久奇米777| av电影在线观看不卡| 亚洲主播在线播放| 日韩午夜激情av| 色综合天天综合| 久久精品国产亚洲5555| 国产精品三级电影| 91精品国产福利在线观看| 粉嫩在线一区二区三区视频| 亚洲1区2区3区4区| 国产亚洲污的网站| 欧美精品日韩综合在线| 国产不卡一区视频| 婷婷国产在线综合| 中文字幕一区免费在线观看| 日韩一级精品视频在线观看| 成人av在线电影| 蜜桃视频免费观看一区| 亚洲制服丝袜一区| 欧美激情在线看| 久久久亚洲午夜电影| 91麻豆swag| 亚洲第一成人在线| 欧美性受极品xxxx喷水| 狠狠色狠狠色综合| 老司机精品视频导航| 日韩精品一区第一页| 亚洲一区在线看| 亚洲综合在线免费观看| 中文字幕av资源一区| 国产欧美日韩亚州综合| 国产无一区二区| 精品sm在线观看| 欧美成人r级一区二区三区| 欧美日韩亚洲国产综合| 欧美日韩国产123区| 欧美一区二区三区影视| 欧美日韩日日摸| 欧美日韩成人综合| 99re热视频这里只精品| 岛国一区二区在线观看| 国内成人精品2018免费看| 精品一二三四在线| 国产精品一区专区| 国产 欧美在线| 99视频超级精品| 精品视频一区 二区 三区| 欧美军同video69gay| 日韩一级在线观看| 国产农村妇女毛片精品久久麻豆 | 琪琪久久久久日韩精品| 狠狠色丁香久久婷婷综| 成人av在线网| 欧美一级精品在线| 国产精品卡一卡二| 亚洲成人免费观看| 黄色日韩网站视频| 91国产福利在线| 国产亚洲女人久久久久毛片| 亚洲精品你懂的| 国产乱码精品一区二区三区av| 色久综合一二码| 欧美激情一区二区| 日韩av电影免费观看高清完整版在线观看 | 一本色道亚洲精品aⅴ| 欧美一区二区三区白人| 亚洲乱码一区二区三区在线观看| 日韩中文字幕一区二区三区| av高清久久久| 国产视频视频一区| 免费成人结看片| 在线电影欧美成精品| 亚洲国产成人porn| 一本久久a久久精品亚洲| 欧美激情一区二区三区蜜桃视频| 久久黄色级2电影| 欧美一区二区三区影视| 日本亚洲免费观看| 91精品国产入口| 玖玖九九国产精品| 欧美日韩中文一区| 日韩黄色在线观看|