⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isql++.h.svn-base

📁 絲路server源碼 Silk Road server source
💻 SVN-BASE
字号:
#ifndef __ISQLXX_H#define __ISQLXX_H#include <odbc++/drivermanager.h>#include <odbc++/connection.h>#include <odbc++/preparedstatement.h>#include <odbc++/resultset.h>#include <odbc++/resultsetmetadata.h>#include <odbc++/databasemetadata.h>#include "dtconv.h"#include <map>#include <cstring>#include <stdexcept>using namespace odbc;using namespace std;#if 0template <class T>class Deleter {private:  T* val_;  Deleter(const Deleter<T>&);  Deleter<T>& operator=(const Deleter<T>&);public:  Deleter(T* t) : val_(t) {}  ~Deleter() { delete val_; }};#endifclass Isql {public:  class CommandException : public exception {  public:    CommandException(const string& str) : msg_(str) {}    virtual ~CommandException() throw() {}        virtual const char* what() const throw() {      return msg_.c_str();    }  private:    string msg_;  };    Isql(Connection* con);  virtual ~Isql();  // returns false if EOF  // otherwise, sets s to the string read  bool readInput(string& s);  void run();  // execute pstmt and dump the results (if any)  void execute(PreparedStatement* pstmt);  // just dump a result set  void printResultSet(ResultSet* rs);  void showAffected();  size_t getTermWidth() const {    return termWidth_;  }  void setTermWidth(size_t w) {    termWidth_=w;  }  enum StatementType {    STATEMENT_COMMAND,    STATEMENT_SQL,    STATEMENT_NONE  };    // Tries to extract a statement from the buffer  // into s and returns it's type. If there is anything  // after the statement, it's left there.  StatementType extractStatement(string& s);  void executeCommand(const string& cmd);  // commands  void setCmd(const vector<string>& args);  void showCmd(const vector<string>& args);  void showTypesCmd();  void commitCmd(const vector<string>& args);  void rollbackCmd(const vector<string>& args);  void describeCmd(const vector<string>& args);private:  void splitIdentifier(const string& id,		       string& cat,string& sch, string& name);  string makeIdentifier(const string& cat,			const string& schema,			const string& name);  Connection* con_;  size_t termWidth_;  string buffer_;  struct ltcasestr {    bool operator()(const string& s1, const string& s2) {      return strcasecmp(s1.c_str(),s2.c_str())<0;    }  };  typedef void (Isql::*Command)(const vector<string>& args);  typedef map<string,Command,ltcasestr> CmdMap;  CmdMap commands_;  bool supportsSchemas_;  bool supportsCatalogs_;  // variable values  int maxRows_;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -