Esempio n. 1
0
/*---------------------------------------------------------------------------*/
void wxSQLHistory::SetResultSet(wxSQLite3ResultSet& resultSet)
{
   wxColour oddColour(wxGetApp().GetParamStr(PARAM_ODDROWCOLOR));
   wxGridSQLite3Table* table = new wxGridSQLite3Table(&resultSet);
   table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
   m_HistoryGrid->SetTable((wxGridTableBase*)table, true);
   table->AdaptColumnsSize();
   m_HistoryGrid->SetSelectionMode(wxGrid::wxGridSelectRows);
   m_HistoryGrid->SetDefaultColSize(50);
   m_HistoryGrid->SetDefaultRowSize(50);
   m_HistoryGrid->SetColLabelSize(25);
   m_HistoryGrid->SetRowLabelSize(0);
   m_HistoryGrid->SetColSize(0, 75);
   m_HistoryGrid->SetColSize(1, 430);
   m_HistoryGrid->SetColSize(2, 50);
   m_HistoryGrid->SetDefaultSelection();
   m_HistoryGrid->ForceRefresh();
   resultSet.Finalize();
}
Esempio n. 2
0
/*---------------------------------------------------------------------------*/
void wxSQLBook::ExecQuery(const wxString& sql, bool explain, bool history)
{
    try
    {
        try
        {
            if (m_db->GetAutoCommit() && m_AutoTransact)
            {
                m_db->ExecuteUpdate(("BEGIN TRANSACTION;"));
                m_LogResult->AppendText(_("Started transaction.\n"));
            }
        }
        catch(wxSQLite3Exception& ex)
        {
            m_LogResult->AppendText(wxString::Format(_("Error %i-%i : %s\n"),
                                    ex.GetErrorCode(),
                                    ex.GetExtendedErrorCode(),
                                    ex.GetMessage().c_str()));
            ShowLog();
        }

        int countrows = 0;
        m_Hook->Clear();
        wxSQLite3ResultSet resultSet;
        wxSQLite3Statement statement = m_db->PrepareStatement(sql);
        if (statement.GetParamCount())
        {
            wxString param, value;
            int count = statement.GetParamCount();
            wxSQLParametersDialog paramsdlg(this);

            for (int i = 0; i < count; i++)
            {
                param = statement.GetParamName(i + 1);
                value = wxGetApp().GetSQLParameter(param);
                paramsdlg.AddParameter(param, value);
            }
            if (paramsdlg.ShowModal() == wxID_OK)
            {
                for (int i = 0; i < count; i++)
                {
                    param = statement.GetParamName(i + 1);
                    value = paramsdlg.GetParameter(i);
                    wxGetApp().SetSQLParameter(param, value);
                    statement.Bind(i + 1, value);
                }
            }
            else
            {
                statement.Finalize();
                return;
            }
            resultSet = statement.ExecuteQuery();
        }
        else
            resultSet = m_db->ExecuteQuery(ToUTF8(sql));
        DisplayHookValues();
        countrows = resultSet.GetColumnCount();

        wxSpecGrid* grid;
        if (explain)
            grid = m_Explain;
        else
            grid = m_DataResult;
        if (countrows)
        {
            grid->SetTable(&g_EmptyTable);
            grid->ForceRefresh();
            wxGridSQLite3Table* table = new wxGridSQLite3Table(&resultSet);
            wxColour oddColour(wxGetApp().GetParamStr(PARAM_ODDROWCOLOR));
            table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
            grid->SetTable((wxGridTableBase*)table, true);
            table->AdaptColumnsSize();
            grid->SetDefaultSelection();

            //grid->SetSelectionMode(wxGrid::wxGridSelectRows);
            grid->ForceRefresh();
            if (explain)
                ShowExplain();
            else
                ShowData();
        }
        else if (m_Hook->GetNbRowDeleted() || m_Hook->GetNbRowInserted() ||
                 m_Hook->GetNbRowUpdated())
            ShowLog();

        resultSet.Finalize();
        statement.Finalize();
        if (history)
            wxGetApp().AddHistory(sql);
    }
    catch(wxSQLite3Exception& ex)
    {
        m_LogResult->AppendText(wxString::Format(_("Error %i in : \n%s\n%i : %s\n"),
                                ex.GetErrorCode(),
                                sql.c_str(),
                                ex.GetExtendedErrorCode(),
                                ex.GetMessage().c_str()));
        ShowLog();
    }
}
Esempio n. 3
0
/*---------------------------------------------------------------------------*/
void wxTableBook::RefreshStruct()
{
    if (!m_db || m_DbObjectName.IsEmpty())
        return;
    // Remplir les wxGrid avec les paramètres de la table
    wxSQLitePlusFrame* frame;
    wxString sql, basename;
    wxSQLite3ResultSet resultSet;
    wxGridSQLite3TableBase* table;
    wxColour oddColour(wxGetApp().GetParamStr(PARAM_ODDROWCOLOR));

    if (m_Base != wxEmptyString)
        basename = m_Base;
    else
        basename = ("main");
    try
    {
        // remplissage de la grille des colonnes
        m_PageColumns->SetTable(&g_EmptyTable);
        m_PageColumns->ForceRefresh();
        table = new wxGridTblColumnsTable(m_db, m_DbObjectName, basename);
        table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
        m_PageColumns->SetTable((wxGridTableBase*)table, true);
        table->AdaptColumnsSize();
        m_PageColumns->SetRowLabelSize(0);
        m_PageColumns->SetDefaultSelection();
        m_PageColumns-> ForceRefresh();
    }
    catch(wxSQLite3Exception& ex)
    {
        wxGetApp().ShowError("RefreshStruct", ex);
    }

    try
    {
        // remplissage de la grille des clés étrangères
        sql = wxString::Format("PRAGMA '%s'.foreign_key_list(\"%s\");",
                               basename.c_str(), m_DbObjectName.c_str());
        resultSet = m_db->ExecuteQuery(ToUTF8(sql));
        m_PageForeignKey->SetTable(&g_EmptyTable);
        m_PageForeignKey->ForceRefresh();
        table = new wxGridSQLite3Table(&resultSet);
        table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
        m_PageForeignKey->SetTable((wxGridTableBase*)table, true);
        table->AdaptColumnsSize();
        m_PageForeignKey->SetRowLabelSize(0);
        m_PageForeignKey->SetDefaultSelection();
        m_PageForeignKey-> ForceRefresh();
        resultSet.Finalize();
    }
    catch(wxSQLite3Exception& ex)
    {
        wxGetApp().ShowError("RefreshStruct", ex);
    }

    try
    {
        // remplissage de la grille des triggers
        m_PageTriggers->SetTable(&g_EmptyTable);
        m_PageTriggers->ForceRefresh();
        table = new wxGridTriggerTable(m_db, m_DbObjectName, basename);
        table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
        m_PageTriggers->SetTable((wxGridTableBase*)table, true);
        table->AdaptColumnsSize();
        m_PageTriggers->SetRowLabelSize(0);
        m_PageTriggers->SetDefaultSelection();
        m_PageTriggers-> ForceRefresh();
    }
    catch(wxSQLite3Exception& ex)
    {
        wxGetApp().ShowError("RefreshStruct", ex);
    }

    try
    {
        // remplissage de la grille des indexes
        m_PageIndexes->SetTable(&g_EmptyTable);
        m_PageIndexes->ForceRefresh();
        table = new wxGridTblIndexesTable(m_db, m_DbObjectName, basename);
        table->SetAttrProvider(new OddRowsGridCellAttrProvider(oddColour));
        m_PageIndexes->SetTable((wxGridTableBase*)table, true);
        table->AdaptColumnsSize();
        m_PageIndexes->SetRowLabelSize(0);
        m_PageIndexes->SetDefaultSelection();
        m_PageIndexes-> ForceRefresh();
    }
    catch(wxSQLite3Exception& ex)
    {
        wxGetApp().ShowError("RefreshStruct", ex);
    }

    frame = (wxSQLitePlusFrame*)wxGetApp().GetTopWindow();
    m_PageDdl->SetValue(frame->GetDbObjectDDL(otTable, m_DbObjectName, basename));

}