71 lines
1.4 KiB
C
71 lines
1.4 KiB
C
|
#ifndef __SQLITE_H
|
||
|
#define __SQLITE_H
|
||
|
|
||
|
#ifndef __SHEET_H
|
||
|
#include <sheet.h>
|
||
|
#endif
|
||
|
|
||
|
///////////////////////////////////////////////////////////
|
||
|
// TSQL_query
|
||
|
///////////////////////////////////////////////////////////
|
||
|
|
||
|
struct TSQL_column_info : public TObject
|
||
|
{
|
||
|
TString _name;
|
||
|
int _width;
|
||
|
bool _numeric;
|
||
|
};
|
||
|
|
||
|
enum TQueryExportFormat { fmt_unknown, fmt_html, fmt_txt, fmt_slk };
|
||
|
|
||
|
class TSQL_query : public TObject
|
||
|
{
|
||
|
TString _sql;
|
||
|
|
||
|
TRecnotype _firstrow, _pagesize, _items;
|
||
|
TArray _column;
|
||
|
TArray _page;
|
||
|
|
||
|
protected:
|
||
|
void reset();
|
||
|
bool save_as_html(const TFilename& path);
|
||
|
bool save_as_silk(const TFilename& path);
|
||
|
bool save_as_text(const TFilename& path);
|
||
|
|
||
|
public:
|
||
|
void set(const char* sql);
|
||
|
|
||
|
virtual int on_get_items(int argc, char** values, char** columns);
|
||
|
|
||
|
TRecnotype items() const;
|
||
|
const TString_array* row(TRecnotype n);
|
||
|
|
||
|
unsigned int columns() const;
|
||
|
const TSQL_column_info& column_info(unsigned int c) const;
|
||
|
const TToken_string& sheet_head() const;
|
||
|
|
||
|
bool save_as(const char* filename, TQueryExportFormat = fmt_unknown);
|
||
|
|
||
|
TSQL_query(const char* sql);
|
||
|
virtual ~TSQL_query() { }
|
||
|
};
|
||
|
|
||
|
///////////////////////////////////////////////////////////
|
||
|
// TQuery_sheet
|
||
|
///////////////////////////////////////////////////////////
|
||
|
|
||
|
class TQuery_sheet : public TSheet
|
||
|
{
|
||
|
TSQL_query& _query;
|
||
|
|
||
|
protected:
|
||
|
virtual void get_row(long r, TToken_string& row);
|
||
|
virtual long get_items() const;
|
||
|
|
||
|
public:
|
||
|
TQuery_sheet(TSQL_query& sql);
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|