--- parser3/src/classes/table.C 2009/11/11 02:26:04 1.270 +++ parser3/src/classes/table.C 2010/07/05 05:54:46 1.272 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_TABLE_C="$Date: 2009/11/11 02:26:04 $"; +static const char * const IDENT_TABLE_C="$Date: 2010/07/05 05:54:46 $"; #if (!defined(NO_STRINGSTREAM) && !defined(FREEBSD4)) #include @@ -106,9 +106,7 @@ static Table::Action_options get_action_ } if(valid_options!=options->count()) - throw Exception(PARSER_RUNTIME, - 0, - "called with invalid option"); + throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); return result; } @@ -464,9 +462,7 @@ static void _save(Request& r, MethodPara if(HashStringValue* options=voptions.get_hash()) { int valid_options=separators.load(*options); if(valid_options!=options->count()) - throw Exception(PARSER_RUNTIME, - 0, - INVALID_OPTION_PASSED); + throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); } else { throw Exception(PARSER_RUNTIME, 0, @@ -685,7 +681,8 @@ static void table_row_to_hash(Table::ele bool exist=false; switch(info->value_type) { case C_STRING: { - exist=info->hash->put_dont_replace(*key, new VString(*row->get(info->value_fields->get(0)))); + size_t index=info->value_fields->get(0); + exist=info->hash->put_dont_replace(*key, (index < row->count()) ? new VString(*row->get(index)) : new VString()); break; } case C_HASH: { @@ -788,16 +785,12 @@ static void _hash(Request& r, MethodPara } if(valid_options!=options->count()) - throw Exception(PARSER_RUNTIME, - 0, - "called with invalid option"); + throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); } } if(param_index==2) // options was specified but not as hash - throw Exception(PARSER_RUNTIME, - 0, - "options must be hash"); + throw Exception(PARSER_RUNTIME, 0, OPTIONS_MUST_BE_HASH); Array value_fields; if(param_index==0){ // list of columns wasn't specified @@ -1154,13 +1147,9 @@ static void _sql(Request& r, MethodParam offset=(ulong)r.process_to_value(*voffset).as_double(); } if(valid_options!=options->count()) - throw Exception(PARSER_RUNTIME, - 0, - "called with invalid option"); + throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); } else - throw Exception(PARSER_RUNTIME, - 0, - "options must be hash"); + throw Exception(PARSER_RUNTIME, 0, OPTIONS_MUST_BE_HASH); } SQL_Driver::Placeholder* placeholders=0;