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

📄 library.cpp

📁 用c的API编写的图书管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
void deletebook()
{
	SQLHENV henv1;
	SQLHDBC hdbc1;
	SQLHSTMT hstmt1;
	SQLRETURN r;
	long c;
	long c1;
	char *databasename="lib";
	char *username="sa";
	char *userpswd="loveshe";
	char check[128];
	char stmt_buf[128];
	char debook[10];
	char bookname[30];
	char checkexist[128];
	char checkbooknum[20];
	char prestring[128]="delete from bookinf where booknum=";
//输入信息
	printf("put in book number which you want to delete\n" );
	scanf("%s",debook);
//////////////////

	
		r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	
	strcpy(checkexist,"select booknum from borrow where booknum=\'");
	strcat(checkexist,debook);
	strcat(checkexist,"\'");

	r = SQLExecDirect( hstmt1, (SQLCHAR *)checkexist, strlen(checkexist) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n" ) ; 
	return ; 
	} 


	SQLBindCol ( hstmt1,1, SQL_C_CHAR, (SQLPOINTER)checkbooknum,20, &c1);

	r = SQLFetch ( hstmt1 ); 
	
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{			printf("the book isn't return\n\n");
			return; }		
 
	///////////////////	
	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	
	strcpy(check,"select bookname from bookinf where booknum=\'");
	strcat(check,debook);
	strcat(check,"\'");
//执行SQL
	r = SQLExecDirect( hstmt1, (SQLCHAR *)check, strlen(check) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n" ) ; 
	return ; 
	} 

//取出书名

	SQLBindCol ( hstmt1,1, SQL_C_CHAR, (SQLPOINTER)bookname,30, &c);

	r = SQLFetch ( hstmt1 ); 
//判断该书是否存在		
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{ } 
//不存在退出
	else
		{
			
			printf("there is no the book \n\n");
			return	;
		}



//存在继续
	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 





	strcpy(stmt_buf,prestring);
	strcat(stmt_buf,debook);

	r = SQLExecDirect( hstmt1, (SQLCHAR *)stmt_buf, strlen(stmt_buf) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n\n" ) ; 
	return; 
	} 
	printf("delete successfully!\n\n");
SQLFreeHandle(SQL_HANDLE_STMT,hstmt1);
SQLDisconnect(hdbc1);


SQLFreeHandle(SQL_HANDLE_DBC,hdbc1);
SQLFreeHandle(SQL_HANDLE_ENV,henv1);
return  ;
	
}

void borrowbook()
{
	SQLHENV henv1;
	SQLHDBC hdbc1;
	SQLHSTMT hstmt1;
	char *databasename="lib";
	char *username="sa";
	char *userpswd="loveshe";
	SQLRETURN r;
	long b;
	long c;
	long c1;
	long c2;
	long borrowremain;
	long bookremain;
	char checkexistper[128];
	char checkborrowername[20];	
	char checkbookname[20];
	char checkexist[128];
	char stmt_buf[512];
	char bobooknum[8];
	char boborrowernum[8];
	char prestring[128]="begin tran haode insert into borrow(booknum,borrowernum,borrowdate,returndate)values (";
	char checkbook[128];
	char checkborrow[128];


	printf("put in book number\n");
	scanf("%s",bobooknum);

	


	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	
	strcpy(checkexist,"select bookname from bookinf where booknum=\'");
	strcat(checkexist,bobooknum);
	strcat(checkexist,"\'");

	r = SQLExecDirect( hstmt1, (SQLCHAR *)checkexist, strlen(checkexist) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n" ) ; 
	return ; 
	} 


	SQLBindCol ( hstmt1,1, SQL_C_CHAR, (SQLPOINTER)checkbookname,20, &c);

	r = SQLFetch ( hstmt1 ); 
	
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{ }		
 
	else
		{
			
			printf("the book doesn't exit \n\n");
			return;
		}

/////////////////////////////////
	printf("put in borrower number\n");
	scanf("%s",boborrowernum);

	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	
	strcpy(checkexistper,"select borrowername from borrower where borrowernum=\'");
	strcat(checkexistper,boborrowernum);
	strcat(checkexistper,"\'");

	r = SQLExecDirect( hstmt1, (SQLCHAR *)checkexistper, strlen(checkexistper) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n" ) ; 
	return ; 
	} 


	SQLBindCol ( hstmt1,1, SQL_C_CHAR, (SQLPOINTER)checkborrowername,20, &b);

	r = SQLFetch ( hstmt1 ); 
	
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{ }		
 
	else
		{
			
			printf("there is no the borrower \n\n");
			return;
		}






	//////////////////////////
	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,
		(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 






	strcpy(checkbook,"select remain from bookinf where booknum=\'");
	strcat(checkbook,bobooknum);
	strcat(checkbook,"\'");

	r = SQLExecDirect( hstmt1, (SQLCHAR *)checkbook, strlen(checkbook) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n\n" ) ; 
	return; 
	} 

	SQLBindCol ( hstmt1,1, SQL_C_LONG, (SQLPOINTER)&bookremain,0, &c1);
	r = SQLFetch ( hstmt1 ); 
	if ( r == SQL_ERROR || r == SQL_SUCCESS_WITH_INFO) 
	{ 
		printf("FETCH ERROE!\n" ); 
		 
		} 
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{
		if(bookremain==0)
		{
			printf("\n\nall the book are borrowed\n\n");
			return;
		}
	}
////////////////////////////////////	
	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,	(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	strcpy(checkborrow,"select remain from borrower where borrowernum=\'");
	strcat(checkborrow,boborrowernum);
	strcat(checkborrow,"\'");

	r = SQLExecDirect( hstmt1, (SQLCHAR *)checkborrow, strlen(checkborrow) ); 
	if ( r != SQL_SUCCESS )
	{ 
	printf("SQLExecDirect error!\n\n" ) ; 
	return; 
	} 

	SQLBindCol ( hstmt1,1, SQL_C_LONG, (SQLPOINTER)&borrowremain,0, &c2);
	r = SQLFetch ( hstmt1 ); 
	if ( r == SQL_ERROR || r == SQL_SUCCESS_WITH_INFO) 
	{ 
		printf("FETCH ERROE!\n" ); 
		 
		} 
	if ( r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
	{
		if(borrowremain==0)
		{
			printf("\n\nyou cannot borrow more book\n\n");
			return;
		}
	}

//////////////////////////////

	r=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv1);
	if ( r != SQL_SUCCESS ) 
	{ 
		printf( "SQLAllocHandle error1!\n") ; 
		exit(1); 
	} 
	
	r = SQLSetEnvAttr ( henv1, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0 ); 
	if ( r != SQL_SUCCESS ) 
	{ 
	printf( "SQLSetEnvAttr error!" ); 
	exit(1); 
	} 

	r=SQLAllocHandle(SQL_HANDLE_DBC,henv1,&hdbc1);

	if ( r != SQL_SUCCESS ) { 
		printf("SQLSetEnvAttr error2!\n") ; 
		exit(1); }
	
	r=SQLConnect(hdbc1,
		(SQLCHAR*)databasename,	SQL_NTS,(SQLCHAR*)username,SQL_NTS,(SQLCHAR*)userpswd,SQL_NTS);
	if(r!=SQL_SUCCESS && r!=SQL_SUCCESS_WITH_INFO )
	{ 
	printf( "SQLAllocHandle4 error!\n") ;
	exit(1); 
	}


	r = SQLAllocHandle ( SQL_HANDLE_STMT, hdbc1, &hstmt1); 
	if ( r != SQL_SUCCESS ) 
	{ 

		printf("SQLAllocHandle3 error!\n"); 

		exit(1); 
	} 




	strcpy(stmt_buf,prestring);

⌨️ 快捷键说明

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