- Timestamp:
- 2010-05-06T12:58:19+12:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/runtime-src/src/colservr/sqlbrowsefilter.cpp
r16310 r22050 3 3 * sqlbrowsefilter.cpp -- 4 4 * Copyright (C) 2008 DL Consulting Ltd 5 * Copyright (C) 2010 New Zealand Digital Library Project 5 6 * 6 7 * A component of the Greenstone digital library software … … 25 26 26 27 #include "sqlbrowsefilter.h" 27 #include "fileutil.h"28 29 28 30 29 sqlbrowsefilterclass::sqlbrowsefilterclass () 31 { 32 sql_db_ptr = NULL; 33 } 30 : sqlfilterclass() 31 {} 34 32 35 33 36 34 sqlbrowsefilterclass::~sqlbrowsefilterclass () 37 { 38 } 39 40 41 void sqlbrowsefilterclass::configure (const text_t &key, const text_tarray &cfgline) 42 { 43 filterclass::configure (key, cfgline); 44 45 if (key == "indexstem") 46 { 47 indexstem = cfgline[0]; 48 } 49 } 50 51 52 bool sqlbrowsefilterclass::init (ostream &logout) 53 { 54 outconvertclass text_t2ascii; 55 56 if (!filterclass::init(logout)) return false; 57 58 if (sql_db_ptr == NULL) 59 { 60 // most likely a configuration problem 61 logout << text_t2ascii << "configuration error: sqlbrowsefilter contains a null sqldbclass\n\n"; 62 return false; 63 } 64 65 if (indexstem.empty()) 66 { 67 indexstem = collection; 68 } 69 70 // get the filename for the database and make sure it exists 71 sql_db_filename = resolve_db_filename(indexstem,sql_db_ptr->getfileextension()); 72 if (!file_exists(sql_db_filename)) 73 { 74 logout << text_t2ascii << "warning: database \"" << sql_db_filename << "\" does not exist\n\n"; 75 return false; 76 } 77 78 return true; 79 } 80 35 {} 81 36 82 37 void sqlbrowsefilterclass::filter (const FilterRequest_t &request, … … 86 41 outconvertclass text_t2ascii; 87 42 88 response.clear(); 89 err = noError; 90 91 if (sql_db_ptr == NULL) { 92 // most likely a configuration problem 93 logout << text_t2ascii << "configuration error: sqlbrowsefilter contains a null sqldbclass\n\n"; 94 err = configurationError; 95 return; 96 } 97 98 // open the database 99 sql_db_ptr->setlogout (&logout); 100 if (!sql_db_ptr->opendatabase (sql_db_filename, DB_READER, 100, false)) { 101 // most likely a system problem (we have already checked that the database exists) 102 logout << text_t2ascii << "system problem: open on database \"" << sql_db_filename << "\" failed\n\n"; 103 err = systemProblem; 43 if (!connect_to_sqldb(response,err,logout)) { 104 44 return; 105 45 } … … 201 141 } 202 142 203 sql_db_ptr->closedatabase(); // Important that local library doesn't leave any files open 143 disconnect_from_sqldb(); 144 204 145 }
Note:
See TracChangeset
for help on using the changeset viewer.