/* * Copyright (c) 1995 Gunther Schadow. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include "Table.h" #include "bootstrap.h" #define CMDBUFSIZE 1024 /* * ALL_TAB_COLUMNS * */ All_Tab_Columns::All_Tab_Columns() : Table() { table_name[S_table_name] = '\0'; column_name[S_column_name] = '\0'; data_type[S_data_type] = '\0'; }; All_Tab_Columns::~All_Tab_Columns() {}; result All_Tab_Columns::retrieve(const char *clause) { char cmd_buf[CMDBUFSIZE]; strncpy(cmd_buf, "SELECT " "table_name, " "column_name, " "data_type, " "data_length, " "data_precision " "AS " ":STRING[30]?, " ":STRING[30]?, " ":STRING[9]?, " ":UINT?, " ":UINT? " "FROM " "All_Tab_Columns ", CMDBUFSIZE); if(clause != NULL) strncat(cmd_buf, clause, CMDBUFSIZE); Cursor = Database->open(cmd_buf, &table_name, &I_table_name, &column_name, &I_column_name, &data_type, &I_data_type, &data_length, &I_data_length, &data_precision, &I_data_precision); if(! Cursor) { cerr << __PRETTY_FUNCTION__ << ":open" << endl; exit(1); } if(!Database->execute(Cursor)) { cerr << __PRETTY_FUNCTION__ << ":execute" << endl; exit(1); } if(Database->fetch(Cursor)) return SUCCESS; else return FAIL; } result All_Tab_Columns::next() { if(Database->fetch(Cursor)) return SUCCESS; else return FAIL; } void All_Tab_Columns::insert() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); }; void All_Tab_Columns::update(const char *clause) { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); }; void All_Tab_Columns::update() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); }; void All_Tab_Columns::remove() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); }; /* * ALL_OBJECTS * */ All_Objects::All_Objects() : Table() { object_name[S_owner] = '\0'; object_name[S_object_name] = '\0'; object_type[S_object_type] = '\0'; }; All_Objects::~All_Objects() {}; result All_Objects::retrieve(const char * clause) { char cmd_buf[CMDBUFSIZE]; strncpy(cmd_buf, "SELECT " "owner, " "object_name, " "object_type " "AS " ":STRING[31]?, " ":STRING[128]?, " ":STRING[13]? " "FROM " "All_Objects ", CMDBUFSIZE); if(clause != NULL) strncat(cmd_buf, clause, CMDBUFSIZE); Cursor = Database->open(cmd_buf, &owner, &I_owner, &object_name, &I_object_name, &object_type, &I_object_type); if(! Cursor) { cerr << __PRETTY_FUNCTION__ << ":open" << endl; exit(1); } if(!Database->execute(Cursor)) { cerr << __PRETTY_FUNCTION__ << ":execute" << endl; exit(1); } if(Database->fetch(Cursor)) return SUCCESS; else return FAIL; } result All_Objects::next() { if(Database->fetch(Cursor)) return SUCCESS; else return FAIL; } void All_Objects::insert() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); } void All_Objects::update(const char *clause) { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); } void All_Objects::update() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); } void All_Objects::remove() { cerr << __PRETTY_FUNCTION__ << "not implemented in bootstrap code"; abort(); }