2015-04-02 13:02
ORBADA » Dokumentacja po Polsku » Dokumentacja wtyczek » BeanShell » Przykłady » Akcje BeanShell

### 5.A.1.7.4.1. Schemat i nazwa tabeli Oracle

Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy tabel wtyczki obsługi bazy danych Oracle.
Przykład oprócz sposobu użycia samego BeanShell pokazuje w jaki sposób dostać się do danych zawartych na liście wyników.

Tytuł akcji: Jaka to tabela (przykład BeanShell)
Klucz akcji: oracle-tables-actions

    import pl.mpak.orbada.gui.comps.table.ViewTable;
    import pl.mpak.sky.gui.mr.ModalResult;
    import pl.mpak.sky.gui.swing.MessageBox;
    import pl.mpak.usedb.util.SQLUtil;

    if (component instanceof ViewTable) {
      ViewTable vt = (ViewTable)component;
      if (vt.getSelectedRow() >= 0) {
        try {
          vt.getQuery().getRecord(vt.getSelectedRow());
          String schemaName = vt.getQuery().fieldByName("schema_name").getString();
          String tableName = vt.getQuery().fieldByName("table_name").getString();
          MessageBox.show(SQLUtil.createSqlName(schemaName, tableName));
        } catch (Exception ex) {
          MessageBox.show("Błąd", ex.getMessage(), ModalResult.OK);
        }
      }
    }

### 5.A.1.7.4.2. Szybkie kopiowanie DLL tabeli

Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy tabel wtyczki obsługi bazy danych Oracle.
Przykład pokazuje w jaki sposób można użyć obiektu `SourceCreator` z wtyczki Oracle oraz skopiować wynik do schowka systemu operacyjnego.

Action title: Szybkie kopiowanie DDL (przykład BeanShell)
Action key: oracle-tables-actions

    import pl.mpak.orbada.gui.comps.table.ViewTable;
    import pl.mpak.sky.gui.mr.ModalResult;
    import pl.mpak.sky.gui.swing.MessageBox;
    import pl.mpak.orbada.oracle.util.SourceCreator;
    import pl.mpak.util.TextTransfer;

    if (component instanceof ViewTable) {
      ViewTable vt = (ViewTable)component;
      if (vt.getSelectedRow() >= 0) {
        try {
          vt.getQuery().getRecord(vt.getSelectedRow());
          new TextTransfer().setClipboardContents(
            new SourceCreator(database, null).getSource(
              vt.getQuery().fieldByName("schema_name").getString(),
              "TABLE",
              vt.getQuery().fieldByName("table_name").getString()));
        } catch (Exception ex) {
          MessageBox.show("Problem", ex.getMessage(), ModalResult.OK);
        }
      }
    }

### 5.A.1.7.4.3. Zabijanie sesji Oracle bez prawa DBA

Poniższy kod można umieścić w konfiguracji skyptów akcji by podpiąć go do listy sesji bazy danych Oracle.

Przykład pokazuje jak wywołać procedurę PL/SQL aby umożliwić użytkownikom bazy danych Oracle zabijać swoje sesje bez uprawnień DBA.

Action title: Zabicie sesji RAC
Action key: oracle-sessions-actions

    import pl.mpak.orbada.gui.comps.table.ViewTable;
    import pl.mpak.sky.gui.mr.ModalResult;
    import pl.mpak.sky.gui.swing.MessageBox;
    import pl.mpak.usedb.util.SQLUtil;

    if (component instanceof ViewTable) {
      ViewTable vt = (ViewTable)component;
      if (vt.getSelectedRow() >= 0) {
        try {
          vt.getQuery().getRecord(vt.getSelectedRow());
          String sid = vt.getQuery().fieldByName("sid").getString();
          String serial = vt.getQuery().fieldByName("serial#").getString();
          String inst = vt.getQuery().fieldByName("inst_id").getString();
          database.createCommand("begin kskill.kill_session("+sid+","+serial +","+inst+"); end;", true);
        } catch (Exception ex) {
          MessageBox.show("Błąd", ex.getMessage(), ModalResult.OK);
        }
      }
    }

ORBADA » Dokumentacja po Polsku » Dokumentacja wtyczek » BeanShell » Przykłady » Akcje BeanShell
• © 2007–2015 • Andrzej Kałuża • Powered By DBPAGES • Hostet at •