delete script - Mailing list pgadmin-hackers

From Rémi Flament
Subject delete script
Date
Msg-id 47AE09FD.4060504@laposte.net
Whole thread Raw
Responses Re: delete script
List 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 by date:

Previous
From: svn@pgadmin.org
Date:
Subject: SVN Commit by dpage: r7177 - in branches/REL-1_8_0_EDB/pgadmin3: . pgadmin/frm
Next
From: "Roberts, Jon"
Date:
Subject: Re: FW: pgAgent job limit