IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4382


Ignore:
Timestamp:
Jun 24, 2005, 11:29:41 AM (21 years ago)
Author:
evanalst
Message:

Update psDBUpdateRows for invalid arguments.

Location:
trunk/psLib/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/dataIO/psDB.c

    r4373 r4382  
    1212 *  @author Joshua Hoblitt
    1313 *
    14  *  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-06-24 02:09:23 $
     14 *  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2005-06-24 21:29:41 $
    1616 *
    1717 *  Copyright 2005 Joshua Hoblitt, University of Hawaii
     
    708708    my_ulonglong    rowsAffected;       // number of rows affected by query
    709709
     710    // Verify database object is not NULL
     711    if(dbh == NULL) {
     712        psError(PS_ERR_UNEXPECTED_NULL,true,PS_ERRORTEXT_psDB_INVALID_PSDB);
     713        return -1;
     714    }
     715
     716    // Generate SQL query to update row
    710717    query = psDBGenerateUpdateRowSQL(tableName, where, values);
    711718    if (!query) {
    712         psError(PS_ERR_UNEXPECTED_NULL, false, "Query generation failed.");
    713 
     719        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_QUERY_GEN_FAIL);
    714720        return -1;
    715721    }
    716722
     723    // Initialize SQL statement
    717724    stmt = mysql_stmt_init(dbh->mysql);
    718725    if (!stmt) {
     
    720727    }
    721728
     729    // Prepare SQL statement
    722730    if (mysql_stmt_prepare(stmt, query, (unsigned long)strlen(query))) {
    723         psError(PS_ERR_UNKNOWN, true, "Failed to prepare query.  Error: %s", mysql_stmt_error(stmt));
    724 
     731        psError(PS_ERR_UNKNOWN, true, PS_ERRORTEXT_psDB_SQL_PREPARE_FAIL, mysql_stmt_error(stmt));
    725732        mysql_stmt_close(stmt);
    726733        psFree(query);
    727 
    728734        return -1;
    729735    }
    730 
    731736    psFree(query);
    732737
     
    743748        psFree(bind);
    744749        mysql_stmt_close(stmt);
    745 
    746750        return -1;
    747751    }
     
    749753    if (mysql_stmt_bind_param(stmt, bind)) {
    750754        psError(PS_ERR_UNKNOWN, true, "Failed to bind params.  Error: %s", mysql_stmt_error(stmt));
    751 
    752755        mysql_rollback(dbh->mysql);
    753 
    754756        psFree(bind);
    755757        mysql_stmt_close(stmt);
    756 
    757758        return -1;
    758759    }
     
    761762        psError(PS_ERR_UNKNOWN, true, "Failed to execute prepared statement.  Error: %s",
    762763                mysql_stmt_error(stmt));
    763 
    764764        mysql_rollback(dbh->mysql);
    765 
    766765        psFree(bind);
    767766        mysql_stmt_close(stmt);
    768 
    769767        return -1;
    770768    }
     
    845843    psU32           i;                  // field index
    846844
     845    // Verify values or bind are not null
     846    if((values == NULL) || (bind == NULL)) {
     847        return false;
     848    }
     849
    847850    // check size of values == paramCount ?
    848 
    849851    cursor = psListIteratorAlloc(values->list, 0, false);
    850852
     
    11001102    char            *whereSQL;
    11011103
     1104    // Verify where and values pointer are not NULL
    11021105    if ((!values) || (!where)) {
    1103         psError(PS_ERR_BAD_PARAMETER_NULL, true, "values and where params may not be NULL.");
    1104 
    1105         return NULL;
    1106     }
    1107 
     1106        psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psDB_UPDATE_ROW_FAIL);
     1107        return NULL;
     1108    }
     1109
     1110    // Create set SQL substring
    11081111    setSQL = psDBGenerateSetSQL(values);
    11091112    if (!setSQL) {
    1110         psError(PS_ERR_UNEXPECTED_NULL, false, "SQL substring generation failed.");
    1111 
    1112         return NULL;
    1113     }
    1114 
     1113        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_SQL_SUBSTR_FAIL);
     1114        return NULL;
     1115    }
     1116
     1117    // Create where SQL substring
    11151118    whereSQL = psDBGenerateWhereSQL(where);
    11161119    if (!whereSQL) {
    1117         psError(PS_ERR_UNEXPECTED_NULL, false, "SQL substring generation failed.");
    1118 
    1119         return NULL;
    1120     }
    1121 
     1120        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_SQL_SUBSTR_FAIL);
     1121        return NULL;
     1122    }
     1123
     1124    // Append substring to SQL update string
    11221125    psStringAppend(&query, "UPDATE %s %s %s", tableName, setSQL, whereSQL);
    11231126    psFree(setSQL);
  • trunk/psLib/src/dataIO/psFileUtilsErrors.dat

    r4373 r4382  
    6464psDB_QUERY_GEN_FAIL                    Query generation failed.
    6565psDB_TABLE_CREATE_FAIL                 Failed to create table.
     66psDB_SQL_PREPARE_FAIL                  Failed to prepare query.  Error: %s
    6667psDB_SQL_QUERY_FAIL                    Failed to execute SQL query.  Error: %s
    6768psDB_TABLE_DROP_FAIL                   Failed to drop table.
     
    6970psDB_QUERY_NO_DATA                     Query returned no data.  Error: %s
    7071psDB_INSERT_ROW_FAIL                   Failed to insert row.
     72psDB_UPDATE_ROW_FAIL                   Update row SQL generate fail: values and where params may not be NULL.
     73psDB_SQL_SUBSTR_FAIL                   SQL substring generation failed.
    7174#
    7275
  • trunk/psLib/src/dataIO/psFileUtilsErrors.h

    r4373 r4382  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-06-24 02:09:23 $
     9 *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-06-24 21:29:41 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    8383#define PS_ERRORTEXT_psDB_QUERY_GEN_FAIL "Query generation failed."
    8484#define PS_ERRORTEXT_psDB_TABLE_CREATE_FAIL "Failed to create table."
     85#define PS_ERRORTEXT_psDB_SQL_PREPARE_FAIL "Failed to prepare query.  Error: %s"
    8586#define PS_ERRORTEXT_psDB_SQL_QUERY_FAIL "Failed to execute SQL query.  Error: %s"
    8687#define PS_ERRORTEXT_psDB_TABLE_DROP_FAIL "Failed to drop table."
     
    8889#define PS_ERRORTEXT_psDB_QUERY_NO_DATA "Query returned no data.  Error: %s"
    8990#define PS_ERRORTEXT_psDB_INSERT_ROW_FAIL "Failed to insert row."
     91#define PS_ERRORTEXT_psDB_UPDATE_ROW_FAIL "Update row SQL generate fail: values and where params may not be NULL."
     92#define PS_ERRORTEXT_psDB_SQL_SUBSTR_FAIL "SQL substring generation failed."
    9093//~End
    9194
  • trunk/psLib/src/db/psDB.c

    r4373 r4382  
    1212 *  @author Joshua Hoblitt
    1313 *
    14  *  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-06-24 02:09:23 $
     14 *  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2005-06-24 21:29:41 $
    1616 *
    1717 *  Copyright 2005 Joshua Hoblitt, University of Hawaii
     
    708708    my_ulonglong    rowsAffected;       // number of rows affected by query
    709709
     710    // Verify database object is not NULL
     711    if(dbh == NULL) {
     712        psError(PS_ERR_UNEXPECTED_NULL,true,PS_ERRORTEXT_psDB_INVALID_PSDB);
     713        return -1;
     714    }
     715
     716    // Generate SQL query to update row
    710717    query = psDBGenerateUpdateRowSQL(tableName, where, values);
    711718    if (!query) {
    712         psError(PS_ERR_UNEXPECTED_NULL, false, "Query generation failed.");
    713 
     719        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_QUERY_GEN_FAIL);
    714720        return -1;
    715721    }
    716722
     723    // Initialize SQL statement
    717724    stmt = mysql_stmt_init(dbh->mysql);
    718725    if (!stmt) {
     
    720727    }
    721728
     729    // Prepare SQL statement
    722730    if (mysql_stmt_prepare(stmt, query, (unsigned long)strlen(query))) {
    723         psError(PS_ERR_UNKNOWN, true, "Failed to prepare query.  Error: %s", mysql_stmt_error(stmt));
    724 
     731        psError(PS_ERR_UNKNOWN, true, PS_ERRORTEXT_psDB_SQL_PREPARE_FAIL, mysql_stmt_error(stmt));
    725732        mysql_stmt_close(stmt);
    726733        psFree(query);
    727 
    728734        return -1;
    729735    }
    730 
    731736    psFree(query);
    732737
     
    743748        psFree(bind);
    744749        mysql_stmt_close(stmt);
    745 
    746750        return -1;
    747751    }
     
    749753    if (mysql_stmt_bind_param(stmt, bind)) {
    750754        psError(PS_ERR_UNKNOWN, true, "Failed to bind params.  Error: %s", mysql_stmt_error(stmt));
    751 
    752755        mysql_rollback(dbh->mysql);
    753 
    754756        psFree(bind);
    755757        mysql_stmt_close(stmt);
    756 
    757758        return -1;
    758759    }
     
    761762        psError(PS_ERR_UNKNOWN, true, "Failed to execute prepared statement.  Error: %s",
    762763                mysql_stmt_error(stmt));
    763 
    764764        mysql_rollback(dbh->mysql);
    765 
    766765        psFree(bind);
    767766        mysql_stmt_close(stmt);
    768 
    769767        return -1;
    770768    }
     
    845843    psU32           i;                  // field index
    846844
     845    // Verify values or bind are not null
     846    if((values == NULL) || (bind == NULL)) {
     847        return false;
     848    }
     849
    847850    // check size of values == paramCount ?
    848 
    849851    cursor = psListIteratorAlloc(values->list, 0, false);
    850852
     
    11001102    char            *whereSQL;
    11011103
     1104    // Verify where and values pointer are not NULL
    11021105    if ((!values) || (!where)) {
    1103         psError(PS_ERR_BAD_PARAMETER_NULL, true, "values and where params may not be NULL.");
    1104 
    1105         return NULL;
    1106     }
    1107 
     1106        psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psDB_UPDATE_ROW_FAIL);
     1107        return NULL;
     1108    }
     1109
     1110    // Create set SQL substring
    11081111    setSQL = psDBGenerateSetSQL(values);
    11091112    if (!setSQL) {
    1110         psError(PS_ERR_UNEXPECTED_NULL, false, "SQL substring generation failed.");
    1111 
    1112         return NULL;
    1113     }
    1114 
     1113        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_SQL_SUBSTR_FAIL);
     1114        return NULL;
     1115    }
     1116
     1117    // Create where SQL substring
    11151118    whereSQL = psDBGenerateWhereSQL(where);
    11161119    if (!whereSQL) {
    1117         psError(PS_ERR_UNEXPECTED_NULL, false, "SQL substring generation failed.");
    1118 
    1119         return NULL;
    1120     }
    1121 
     1120        psError(PS_ERR_UNEXPECTED_NULL, false, PS_ERRORTEXT_psDB_SQL_SUBSTR_FAIL);
     1121        return NULL;
     1122    }
     1123
     1124    // Append substring to SQL update string
    11221125    psStringAppend(&query, "UPDATE %s %s %s", tableName, setSQL, whereSQL);
    11231126    psFree(setSQL);
Note: See TracChangeset for help on using the changeset viewer.