00001 /* Copyright (C) 2002, 2003, 2004 Jan Wedekind. 00002 This file is part of the recipe database application AnyMeal. 00003 00004 AnyMeal is free software; you can redistribute it and/or modify it under 00005 the terms of the GNU GENERAL PUBLIC LICENSE as published by the Free 00006 Software Foundation; either version 3 of the License, or (at your option) 00007 any later version. 00008 00009 AnyMeal is distributed in the hope that it will be useful, but WITHOUT ANY 00010 WARRANTY; without even the implied warranty of MERCHANTIBILITY or FITNESS 00011 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00012 details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00016 #include <sstream> 00017 #include "database.hpp" 00018 00019 using namespace std; 00020 00021 void Database::execScript( const std::string &script ) throw (Error) 00022 { 00023 istringstream stream( script ); 00024 execScript( stream ); 00025 } 00026 00027 void Database::execScript( istream &stream ) throw (Error) 00028 { 00029 while ( !stream.eof() ) { 00030 string line; 00031 getline( stream, line ); 00032 if ( line[ line.length() - 1 ] == ';' ) 00033 execQuery( line.substr( 0, line.length() - 1 ) ); 00034 else 00035 execQuery( line ); 00036 }; 00037 }