src/odbc/odbcState.cxx

Go to the documentation of this file.
00001 
00002 /* Description: State Transition Functions. 
00003                 States which are maintained by DriverManager is
00004                 not used. Implementation of DriverManager would use them.
00005 
00006 */
00007 
00008 #include "odbcCommon.h"
00009 
00010 // Related to Environment Handle
00011 //------------------------------
00012 SQLRETURN CSqlOdbcEnv::chkStateForSQLFreeHandle( void )
00013 {
00014     switch( state_ )
00015     {
00016         case E0:
00017         case E1: break;
00018         case E2: err_.set( ERROR_FUNCSEQ ); 
00019                  return( SQL_ERROR );
00020     }
00021     return( SQL_SUCCESS );
00022 }
00023 SQLRETURN CSqlOdbcEnv::chkStateForSQLSetEnvAttr( void )
00024 {
00025     switch( state_ )
00026     {
00027         case E0:
00028         case E1: break;
00029         case E2: err_.set( ERROR_ATTR_CANNOT_SET ); 
00030                  return( SQL_ERROR );
00031     }
00032     return( SQL_SUCCESS );
00033 }
00034 
00035 // Related to Connection Handle
00036 //------------------------------
00037 SQLRETURN CSqlOdbcDbc::chkStateForSQLFreeHandle( void )
00038 {
00039     switch( state_ )
00040     {
00041         case C0:
00042         case C1:
00043         case C2: break;
00044         case C3:
00045         case C4:
00046         case C5:
00047         case C6: err_.set( ERROR_FUNCSEQ );
00048                  return( SQL_ERROR );
00049     }
00050     return( SQL_SUCCESS );
00051 }
00052 SQLRETURN CSqlOdbcDbc::chkStateForSQLConnect( void )
00053 {
00054     switch( state_ )
00055     {
00056         case C0:
00057         case C1:
00058         case C2: break;
00059         case C3:
00060         case C4:
00061         case C5:
00062         case C6: err_.set( ERROR_CONNINUSE );
00063                  return( SQL_ERROR );
00064     }
00065     return( SQL_SUCCESS );
00066 }
00067 SQLRETURN CSqlOdbcDbc::chkStateForSQLDisconnect( void )
00068 {
00069     switch( state_ )
00070     {
00071         case C0:
00072         case C1:
00073         case C2: err_.set( ERROR_CONNOTOPEN );
00074                  return( SQL_ERROR );
00075         case C3:
00076         case C4:
00077         case C5: break;
00078         case C6: err_.set( ERROR_INVTRANSTATE );
00079                  return( SQL_ERROR );
00080     }
00081     return( SQL_SUCCESS );
00082 }
00083 SQLRETURN CSqlOdbcDbc::chkStateForSQLEndTran( void )
00084 {
00085     switch( state_ )
00086     {
00087         case C0:
00088         case C1:
00089         case C2: 
00090         case C3: err_.set( ERROR_NOTOPENED );
00091                  return( SQL_ERROR );
00092         case C4:
00093         case C5:
00094         case C6: break;
00095     }
00096     return( SQL_SUCCESS );
00097 }
00098 SQLRETURN CSqlOdbcDbc::chkStateForSQLSetConnectAttr( void )
00099 {
00100     switch( state_ )
00101     {
00102         case C0:
00103         case C1:
00104         case C2:
00105         case C3:
00106         case C4:
00107         case C5: break;
00108         case C6: err_.set( ERROR_FUNCSEQ );
00109                  return( SQL_ERROR );
00110     }
00111     return( SQL_SUCCESS );
00112 }
00113 
00114 // Related to Statement Handle
00115 //------------------------------
00116 SQLRETURN CSqlOdbcStmt::chkStateForSQLFreeHandle( void )
00117 {
00118     switch( state_ )
00119     {
00120         case S0:
00121         case S1:
00122         case S2:
00123         case S3:
00124         case S4:
00125         case S5:
00126         case S6:
00127         case S7: break;
00128         case S8:
00129         case S9:
00130         case S10:
00131         case S11:
00132         case S12: err_.set( ERROR_FUNCSEQ );
00133                   return( SQL_ERROR );
00134     }
00135     return( SQL_SUCCESS );
00136 }
00137 SQLRETURN CSqlOdbcStmt::chkStateForSQLFreeStmt( void )
00138 {
00139     switch( state_ )
00140     {
00141         case S0:
00142         case S1:
00143         case S2:
00144         case S3:
00145         case S4:
00146         case S5:
00147         case S6:
00148         case S7: break;
00149         case S8:
00150         case S9:
00151         case S10:
00152         case S11:
00153         case S12: err_.set( ERROR_FUNCSEQ );
00154                   return( SQL_ERROR );
00155     }
00156     return( SQL_SUCCESS );
00157 }
00158 SQLRETURN CSqlOdbcStmt::chkStateForSQLBindCol( void )
00159 {
00160     switch( state_ )
00161     {
00162         case S0:
00163         case S1:
00164         case S2:
00165         case S3:
00166         case S4:
00167         case S5:
00168         case S6:
00169         case S7: break;
00170         case S8:
00171         case S9:
00172         case S10:
00173         case S11:
00174         case S12: err_.set( ERROR_FUNCSEQ );
00175                   return( SQL_ERROR );
00176     }
00177     return( SQL_SUCCESS );
00178 }
00179 SQLRETURN CSqlOdbcStmt::chkStateForSQLBindParameter( void )
00180 {
00181     switch( state_ )
00182     {
00183         case S0:
00184         case S1:
00185         case S2:
00186         case S3:
00187         case S4:
00188         case S5:
00189         case S6:
00190         case S7: break;
00191         case S8:
00192         case S9:
00193         case S10:
00194         case S11:
00195         case S12: err_.set( ERROR_FUNCSEQ );
00196                   return( SQL_ERROR );
00197     }
00198     return( SQL_SUCCESS );
00199 }
00200 SQLRETURN CSqlOdbcStmt::chkStateForSQLPrepare( void )
00201 {
00202     switch( state_ )
00203     {
00204         case S0:
00205         case S1:
00206         case S2:
00207         case S3:
00208         case S4: break;
00209 
00210         case S5:
00211         case S6:
00212         case S7: err_.set( ERROR_INVCURSTATE );
00213                  return( SQL_ERROR );
00214         case S8:
00215         case S9:
00216         case S10:
00217         case S11:
00218         case S12: err_.set( ERROR_FUNCSEQ );
00219                   return( SQL_ERROR );
00220     }
00221     return( SQL_SUCCESS );
00222 }
00223 SQLRETURN CSqlOdbcStmt::chkStateForSQLExecute( void )
00224 {
00225     switch( state_ )
00226     {
00227         case S2:
00228         case S3:
00229         case S4: break;
00230 
00231         case S5:
00232         case S6:
00233         case S7: err_.set( ERROR_INVCURSTATE );
00234                  return( SQL_ERROR );
00235 
00236         case S0:
00237         case S1:
00238         case S8:
00239         case S9:
00240         case S10:
00241         case S11:
00242         case S12: err_.set( ERROR_FUNCSEQ );
00243                   return( SQL_ERROR );
00244     }
00245     return( SQL_SUCCESS );
00246 }
00247 SQLRETURN CSqlOdbcStmt::chkStateForSQLExecDirect( void )
00248 {
00249     switch( state_ )
00250     {
00251         case S0:
00252         case S1:
00253         case S2:
00254         case S3:
00255         case S4: break;
00256 
00257         case S5:
00258         case S6:
00259         case S7: err_.set( ERROR_INVCURSTATE );
00260                  return( SQL_ERROR );
00261 
00262         case S8:
00263         case S9:
00264         case S10:
00265         case S11:
00266         case S12: err_.set( ERROR_FUNCSEQ );
00267                   return( SQL_ERROR );
00268     }
00269     return( SQL_SUCCESS );
00270 }
00271 SQLRETURN CSqlOdbcStmt::chkStateForSQLFetch( void )
00272 {
00273     switch( state_ )
00274     {
00275         case S0:
00276         case S1:
00277         case S2:
00278         case S3: err_.set( ERROR_NOT_PREPAREDSTMT );
00279                  return( SQL_ERROR );
00280         case S4: err_.set( ERROR_INVCURSTATE );
00281                  return( SQL_ERROR );
00282         case S5:
00283         case S6:
00284         case S7: break;
00285 
00286         case S8:
00287         case S9:
00288         case S10:
00289         case S11:
00290         case S12: err_.set( ERROR_FUNCSEQ );
00291                   return( SQL_ERROR );
00292     }
00293     return( SQL_SUCCESS );
00294 }
00295 SQLRETURN CSqlOdbcStmt::chkStateForSQLCloseCursor( void )
00296 {
00297     switch( state_ )
00298     {
00299         case S0:
00300         case S1:
00301         case S2:
00302         case S3:
00303         case S4: err_.set( ERROR_INVCURSTATE );
00304                  return( SQL_ERROR );
00305         case S5:
00306         case S6:
00307         case S7: break;
00308         case S8:
00309         case S9:
00310         case S10:
00311         case S11:
00312         case S12: err_.set( ERROR_FUNCSEQ );
00313                   return( SQL_ERROR );
00314     }
00315     return( SQL_SUCCESS );
00316 }
00317 SQLRETURN CSqlOdbcStmt::chkStateForSQLGetCursorName( void )
00318 {
00319     switch( state_ )
00320     {
00321         case S0:
00322         case S1:
00323         case S2:
00324         case S3:
00325         case S4:
00326         case S5:
00327         case S6:
00328         case S7: break; 
00329 
00330         case S8:
00331         case S9:
00332         case S10:
00333         case S11:
00334         case S12: err_.set( ERROR_FUNCSEQ );
00335                   return( SQL_ERROR );
00336     }
00337     return( SQL_SUCCESS );
00338 }
00339 SQLRETURN CSqlOdbcStmt::chkStateForSQLSetCursorName( void )
00340 {
00341     switch( state_ )
00342     {
00343         case S0:
00344         case S1:
00345         case S2:
00346         case S3: break;
00347 
00348         case S4:
00349         case S5:
00350         case S6:
00351         case S7: 
00352         case S8: err_.set( ERROR_INVCURSTATE );
00353                  return( SQL_ERROR );
00354         case S9:
00355         case S10:
00356         case S11:
00357         case S12: err_.set( ERROR_FUNCSEQ );
00358                   return( SQL_ERROR );
00359     }
00360     return( SQL_SUCCESS );
00361 }
00362 SQLRETURN CSqlOdbcStmt::chkStateForSQLNumResultCols( void )
00363 {
00364     switch( state_ )
00365     {
00366         case S2:
00367         case S3:
00368         case S4:
00369         case S5:
00370         case S6:
00371         case S7: break;
00372 
00373         case S0:
00374         case S1: 
00375 
00376         case S8:
00377         case S9:
00378         case S10:
00379         case S11:
00380         case S12: err_.set( ERROR_FUNCSEQ );
00381                   return( SQL_ERROR );
00382     }
00383     return( SQL_SUCCESS );
00384 }
00385 SQLRETURN CSqlOdbcStmt::chkStateForSQLRowCount( void )
00386 {
00387     switch( state_ )
00388     {
00389         case S4:
00390         case S5:
00391         case S6: break;
00392 
00393         case S0:
00394         case S1: 
00395         case S2:
00396         case S3:
00397 
00398         case S7:
00399         case S8:
00400         case S9:
00401         case S10:
00402         case S11:
00403         case S12: err_.set( ERROR_FUNCSEQ );
00404                   return( SQL_ERROR );
00405     }
00406     return( SQL_SUCCESS );
00407 }
00408 SQLRETURN CSqlOdbcStmt::chkStateForSQLDescribeCol( void )
00409 {
00410     switch( state_ )
00411     {
00412         case S4: err_.set( ERROR_INVCURSTATE );
00413                  return( SQL_ERROR );
00414 
00415         case S3:
00416         case S5:
00417         case S6:
00418         case S7: break;
00419 
00420         case S0:
00421         case S1: 
00422         case S2:
00423 
00424         case S8:
00425         case S9:
00426         case S10:
00427         case S11:
00428         case S12: err_.set( ERROR_FUNCSEQ );
00429                   return( SQL_ERROR );
00430     }
00431     return( SQL_SUCCESS );
00432 }
00433 SQLRETURN CSqlOdbcStmt::chkStateForSQLNumParams(void )
00434 {
00435     switch( state_ )
00436     {
00437 
00438         case S0: err_.set(ERROR_INVCURSTATE );
00439                  return( SQL_ERROR );
00440         case S2:
00441         case S3:
00442         case S4: 
00443         case S5:
00444         case S6:
00445         case S7: break;
00446         case S1:
00447         case S8:
00448         case S9:
00449         case S10:
00450         case S11:
00451         case S12: err_.set( ERROR_FUNCSEQ );
00452                   return( SQL_ERROR );
00453     }
00454     return( SQL_SUCCESS );
00455 }
00456 
00457 SQLRETURN CSqlOdbcStmt::chkStateForSQLDescribeParam(void)
00458 {
00459     switch( state_ )
00460     {
00461         case S2:
00462         case S3:break;
00463         case S0:
00464         case S1: 
00465         case S5:
00466         case S6:
00467         case S7: 
00468         case S8:
00469         case S9:
00470         case S10:
00471         case S11:
00472         case S12: err_.set( ERROR_FUNCSEQ );
00473                   return( SQL_ERROR );
00474     }
00475     return( SQL_SUCCESS );
00476 }

Generated on Mon Jun 9 22:37:14 2008 for csql by  doxygen 1.4.7