⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.cpp

📁 跨平台的QT直接访问MYSQL数据库的示例
💻 CPP
字号:
#include <WINDOWS.H>
#include <mysql.h>
#include <QApplication>
#include <QTextEdit>
#include <QString>
#include <QDateTime>
#include <QTextCodec>
#include <QDebug>

int main(int argc, char **argv) 
{ 
	QApplication app(argc, argv);
	QTextEdit display; display.resize(400, 160);
	display.show(); // 下面进行数据库的设置	
	char szTargetDSN[] = "kgdb"; 
	char szSqlText[500] = "";	
	char aszFlds[ 25 ][ 25 ]; 
	char szTmp[200];
	char szBuff[100];
	MYSQL * myData ; 
	MYSQL_RES * res ; 
	MYSQL_FIELD * fd ; 
	MYSQL_ROW row ; 
	int i,j,k; 
	BOOL bCreate = TRUE; 
	QString value;	
  QTextCodec *codec; 
  
  codec=QTextCodec::codecForName("ISO 8859-1");

	if ( (myData = mysql_init((MYSQL*) 0))		//初始化数据结构 
		&& mysql_real_connect( myData, NULL,	//连接数据库 
		"test", "lflzyb", szTargetDSN, 
		MYSQL_PORT, NULL, 0 ) ) 
	{ 
		mysql_set_character_set(myData, "ISO 8859-1");
		sprintf(szSqlText, "select * from employee"); 
		if (mysql_query( myData, szSqlText)) 
			//进行数据检索 
		{ 
			//执行SQL语句出错 
			display.append("Execute sql statement fail");		
			mysql_close( myData ) ; 
		} 		
		else 	
		{ 
			display.append("===========================================");
			display.append(QString::fromLocal8Bit(" id | 姓名 | 生日 | 电话")); 
			display.append("--------------------------------------"); 			
			
			res = mysql_store_result( myData );
			//取得查询结果 
			i = (int) mysql_num_rows( res );
			//取得有效记录数 
			sprintf(szTmp, "Query: %s\n%ld records found: \n", szSqlText, i ) ; 
			display.append(szTmp);
			for ( i = 0 ; fd = mysql_fetch_field( res ); i++ ) 
				strcpy( aszFlds[ i ], fd->name ) ; 
			//取得各字段名 
			for (i=1; row = mysql_fetch_row( res ); ) 
				//依次读取各条记录 
			{
				j = mysql_num_fields( res ) ; 
				//取得记录中的字段数 
				sprintf( szTmp, "Record #%ld:-\n", i++ ) ; 
				display.append(szTmp);				
				for ( k = 0 ; k < j ; k++ ) 
				{
					//输出各字段的值		

					if(row[k]==NULL || strlen(row[k]) == 0)
					{
						row[k] = "NULL";					
					}
					else
					{
						value = row[k];										
					}

					sprintf( szTmp, " Fld #%d (%s):", k + 1, aszFlds[ k ]) ;
					display.append(szTmp);							 
					display.append(QString::fromLocal8Bit(row[k]));
					display.append("\n");
				}		
				display.append( "==============================\n" ) ;
										 
			} 
			mysql_free_result( res ) ; 
		} 				
	} 
	else 
	{//连接数据库出错 
		display.append("Can't connect to the mysql server ") ; 
		mysql_close( myData ) ; 
	} 
	mysql_close( myData ) ; 
	
	QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
	return app.exec();	 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -