1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// ctlSQLResult.h - SQL Query result window
//
//////////////////////////////////////////////////////////////////////////
#ifndef CTLSQLRESULT_H
#define CTLSQLRESULT_H
// wxWindows headers
#include <wx/thread.h>
#include "db/pgSet.h"
#include "db/pgConn.h"
#include "ctlSQLGrid.h"
#include "frm/frmExport.h"
#define CTLSQL_RUNNING 100 // must be greater than ExecStatusType PGRES_xxx values
class ctlSQLResult : public ctlSQLGrid
{
public:
ctlSQLResult(wxWindow *parent, pgConn *conn, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
~ctlSQLResult();
int Execute(const wxString &query, int resultToDisplay = 0, wxWindow *caller = 0, long eventId = 0, void *data = 0); // > 0: resultset to display, <=0: last result
void SetConnection(pgConn *conn);
long NumRows() const;
long InsertedCount() const;
OID InsertedOid() const;
int Abort();
bool Export();
bool ToFile();
bool ToFile(frmExport *frm);
bool CanExport()
{
return NumRows() > 0 && colNames.GetCount() > 0;
}
wxString OnGetItemText(long item, long col) const;
bool IsColText(int col);
bool hasRowNumber()
{
return !rowcountSuppressed;
}
int RunStatus();
wxString GetMessagesAndClear();
wxString GetErrorMessage();
pgError GetResultError();
void DisplayData(bool single = false);
bool GetRowCountSuppressed()
{
return rowcountSuppressed;
};
void SetMaxRows(int rows);
void ResultsFinished();
void OnGridSelect(wxGridRangeSelectEvent &event);
wxArrayString colNames;
wxArrayString colTypes;
wxArrayLong colTypClasses;
private:
pgQueryThread *thread;
pgConn *conn;
bool rowcountSuppressed;
};
class sqlResultTable : public wxGridTableBase
{
public:
sqlResultTable();
wxString GetValue(int row, int col);
int GetNumberRows();
int GetNumberCols();
bool IsEmptyCell(int row, int col)
{
return false;
}
wxString GetColLabelValue(int col);
void SetValue(int row, int col, const wxString &value)
{
return;
}
void SetThread(pgQueryThread *t)
{
thread = t;
}
bool DeleteRows(size_t pos = 0, size_t numRows = 1)
{
return true;
}
bool DeleteCols(size_t pos = 0, size_t numCols = 1)
{
return true;
}
private:
pgQueryThread *thread;
};
#endif
|