delete script
От | Rémi Flament |
---|---|
Тема | delete script |
Дата | |
Msg-id | 47AE09FD.4060504@laposte.net обсуждение исходный текст |
Ответы |
Re: delete script
("Dave Page" <dpage@pgadmin.org>)
|
Список | pgadmin-hackers |
Hi, I wrote a small patch to add the "delete script" item in the script menu on tables. It just open an sql editor with a delete query in it for the selected table. Regards, Rémi. Index: pgadmin/include/frm/frmQuery.h =================================================================== --- pgadmin/include/frm/frmQuery.h (révision 7174) +++ pgadmin/include/frm/frmQuery.h (copie de travail) @@ -226,6 +226,14 @@ wxWindow *StartDialog(frmMain *form, pgObject *obj); }; +class queryToolDeleteFactory : public queryToolDataFactory +{ +public: + queryToolDeleteFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar); + wxWindow *StartDialog(frmMain *form, pgObject *obj); + bool CheckEnable(pgObject *obj); +}; + class queryToolInsertFactory : public queryToolDataFactory { public: Index: pgadmin/include/schema/pgTable.h =================================================================== --- pgadmin/include/schema/pgTable.h (révision 7174) +++ pgadmin/include/schema/pgTable.h (copie de travail) @@ -106,6 +106,7 @@ wxString GetSelectSql(ctlTree *browser); wxString GetInsertSql(ctlTree *browser); wxString GetUpdateSql(ctlTree *browser); + wxString GetDeleteSql(ctlTree *browser); wxString GetHelpPage(bool forCreate) const; pgObject *Refresh(ctlTree *browser, const wxTreeItemId item); void iSetTriggersEnabled(ctlTree *browser, bool enable); Index: pgadmin/frm/frmQuery.cpp =================================================================== --- pgadmin/frm/frmQuery.cpp (révision 7174) +++ pgadmin/frm/frmQuery.cpp (copie de travail) @@ -2032,7 +2032,31 @@ return 0; } +queryToolDeleteFactory::queryToolDeleteFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar) : queryToolDataFactory(list) +{ + mnu->Append(id, _("DELETE script"), _("Start query tool with DELETE script.")); +} +bool queryToolDeleteFactory::CheckEnable(pgObject *obj) +{ + if (!queryToolDataFactory::CheckEnable(obj)) + return false; + if (obj->IsCreatedBy(tableFactory)) + return true; + return false; +} + +wxWindow *queryToolDeleteFactory::StartDialog(frmMain *form, pgObject *obj) +{ + if (obj->IsCreatedBy(tableFactory)) + { + pgTable *table = (pgTable*)obj; + return StartDialogSql(form, obj, table->GetDeleteSql(form->GetBrowser())); + } + return 0; +} + + queryToolUpdateFactory::queryToolUpdateFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar) : queryToolDataFactory(list) { mnu->Append(id, _("UPDATE script"), _("Start query tool with UPDATE script.")); Index: pgadmin/frm/frmMain.cpp =================================================================== --- pgadmin/frm/frmMain.cpp (révision 7174) +++ pgadmin/frm/frmMain.cpp (copie de travail) @@ -354,6 +354,7 @@ new queryToolSelectFactory(menuFactories, scriptingMenu, 0); new queryToolInsertFactory(menuFactories, scriptingMenu, 0); new queryToolUpdateFactory(menuFactories, scriptingMenu, 0); + new queryToolDeleteFactory(menuFactories, scriptingMenu, 0); viewdataMenuFactory = new submenuFactory(menuFactories); // placeholder where "View data" submenu will be inserted toolsMenu->Append(viewdataMenuFactory->GetId(), _("View &Data"), viewDataMenu, _("View data.")); Index: pgadmin/schema/pgTable.cpp =================================================================== --- pgadmin/schema/pgTable.cpp (révision 7174) +++ pgadmin/schema/pgTable.cpp (copie de travail) @@ -472,6 +472,14 @@ return sql; } +wxString pgTable::GetDeleteSql(ctlTree *browser) +{ + wxString qms; + wxString sql = + wxT("DELETE FROM ") + GetQuotedFullIdentifier() + wxT("\n") + wxT(" WHERE <condition>;\n"); + return sql; +} bool pgTable::EnableTriggers(const bool b) {
В списке pgadmin-hackers по дате отправления:
Предыдущее
От: svn@pgadmin.orgДата:
Сообщение: SVN Commit by dpage: r7177 - in branches/REL-1_8_0_EDB/pgadmin3: . pgadmin/frm