21#include <kexiproject.h>
22#include <kexidb/connection.h>
23#include <kexidb/parser/parser.h>
24#include <kexidb/cursor.h>
25#include <keximainwindow.h>
26#include <kexiutils/utils.h>
28#include "kexiqueryview.h"
29#include "kexiquerydesignersql.h"
30#include "kexiquerydesignerguieditor.h"
31#include "kexiquerypart.h"
32#include <widget/tableview/kexitableview.h>
33#include <widget/kexiqueryparameters.h>
36class KexiQueryView::Private
44 KexiDB::Cursor *cursor;
53KexiQueryView::KexiQueryView(
KexiMainWindow *win, TQWidget *parent,
const char *name)
57 tableView()->setInsertingEnabled(
false);
60KexiQueryView::~KexiQueryView()
63 d->cursor->connection()->deleteCursor(d->cursor);
71 KexiUtils::WaitCursor wait;
72 KexiDB::Cursor *oldCursor = d->cursor;
75 TQValueList<TQVariant> params;
77 KexiUtils::WaitCursorRemover remover;
79 *
mainWin()->project()->dbConnection()->driver(), *query, ok);
87 i18n(
"Query executing failed."));
100 tableView()->setReadOnly(
true );
103 tableView()->KexiDataAwareObjectInterface::data()->setReadOnly(
true );
104 tableView()->setInsertingEnabled(
false );
108tristate KexiQueryView::afterSwitchFrom(
int mode)
111 KexiDB::QuerySchema *querySchema =
static_cast<KexiDB::QuerySchema *
>(
parentDialog()->schemaData());
112 const tristate result = executeQuery(querySchema);
117 KexiQueryPart::TempData * temp =
static_cast<KexiQueryPart::TempData*
>(
parentDialog()->
tempData());
125 const tristate result = executeQuery(temp->
query());
135 if (
dynamic_cast<KexiQueryDesignerGuiEditor*
>(view))
136 return dynamic_cast<KexiQueryDesignerGuiEditor*
>(view)->storeNewData(sdata, cancel);
137 if (
dynamic_cast<KexiQueryDesignerSQLView*
>(view))
138 return dynamic_cast<KexiQueryDesignerSQLView*
>(view)->storeNewData(sdata, cancel);
142tristate KexiQueryView::storeData(
bool dontAsk)
145 if (
dynamic_cast<KexiQueryDesignerGuiEditor*
>(view))
146 return dynamic_cast<KexiQueryDesignerGuiEditor*
>(view)->storeData(dontAsk);
147 if (
dynamic_cast<KexiQueryDesignerSQLView*
>(view))
148 return dynamic_cast<KexiQueryDesignerSQLView*
>(view)->storeData(dontAsk);
153#include "kexiqueryview.moc"
bool deleteCursor(Cursor *cursor)
Cursor * executeQuery(const TQString &statement, uint cursor_options=0)
Connection * connection() const
KexiDB::QuerySchema provides information about database query.
QuerySchemaParameterList parameters()
Provides a data-driven (record-based) tabular view.
void setData(KexiDB::Cursor *cursor)
KexiDialogTempData * tempData() const
KexiViewBase * viewThatRecentlySetDirtyFlag() const
Kexi's main window interface This interface is implemented by KexiMainWindowImpl class.
virtual KexiProject * project()=0
Project data of currently opened project or NULL if no project here yet.
KexiDB::Connection * dbConnection() const
static TQValueList< TQVariant > getParameters(TQWidget *parent, const KexiDB::Driver &driver, KexiDB::QuerySchema &querySchema, bool &ok)
KexiDB::QuerySchema * query() const
KexiDialogBase * parentDialog() const
KexiMainWindow * mainWin() const
3-state logical type with three values: true, false and cancelled and convenient operators.
KEXI_DB_EXPORT void debug(const QuerySchemaParameterList &list)
Shows debug information for list.
@ TextViewMode
Also known as SQL View Mode.