📄 library.cpp
字号:
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 + -