1 package nmp.dbms.util; 2 3 import java.util.*; 4 import java.io.*; 5 import java.awt.*; 6 import java.awt.event.*; 7 import nmp.dbms.JDBC.*; 8 9 public class AWTInterDB { 10 public static void main( String[] args) 11 throws IOException{ 12 doit( args); 13 } 14 public static void doit( String[] args) 15 throws IOException{ 16 if( args == null || ( args.length != 3 && args.length != 4)) { 17 System.err.println( "Usage:\n InterDB url userName userPwd [driver]"); 18 return; 19 } 20 21 try { 22 Jdbc_Sql sql = null; 23 if( args.length == 3) 24 sql = new Jdbc_Sql( "sun.jdbc.odbc.JdbcOdbcDriver", args[0], args[1], args[2]); 25 else 26 sql = new Jdbc_Sql( args[3], args[0], args[1], args[2]); 27 28 doit( sql,args[0]); 29 30 sql.closeAll(); 31 } 32 catch( Exception e) { 33 PrintWriter pw; 34 String name = args[0].substring( args[0].lastIndexOf( ':') + 1); 35 try { 36 pw = new PrintWriter( new FileWriter( "ERR_" + name + ".log", true)); 37 } 38 catch( FileNotFoundException e0) { 39 pw = new PrintWriter( new FileWriter( "ERR_" + name + ".log")); 40 } 41 e.printStackTrace( pw); 42 pw.println(); 43 pw.flush(); 44 } 45 } 46 47 static void doit( Jdbc_Sql sql, String name) { 48 new AWTInterFrame( sql, name); 49 } 50 static void doit( Jdbc_Sql sql) { 51 new AWTInterFrame( sql); 52 } 53 } 54 55 class AWTInterFrame extends Frame 56 { 57 Jdbc_Sql sql; 58 TextField f_statement; 59 TextArea f_result; 60 Vector s_list = new Vector(); 61 int cur = 0; 62 63 public AWTInterFrame( Jdbc_Sql sql) { 64 this( sql, "unknown name"); 65 } 66 public AWTInterFrame( Jdbc_Sql sql, String name) { 67 super( name); 68 this.sql = sql; 69 this.setLayout( new BorderLayout()); 70 Panel panel = new Panel(); 71 f_statement = new TextField( 30);/* { 72 protected void processComponentKeyEvent(KeyEvent e) { 73 if( e.getID() == e.KEY_PRESSED) { 74 if( e.getKeyCode() == e.VK_UP) { 75 if( cur > 0) { 76 String str = (String)s_list.elementAt( --cur); 77 f_statement.setText( str); 78 f_statement.setCaretPosition( str.length()); 79 } 80 return; 81 } else if( e.getKeyCode() == e.VK_DOWN) { 82 if( cur == s_list.size() - 1) { 83 cur++; 84 f_statement.setText( ""); 85 f_statement.setCaretPosition( 0); 86 } else if( cur < s_list.size() - 1) { 87 String str = (String)s_list.elementAt( ++cur); 88 f_statement.setText( str); 89 f_statement.setCaretPosition( str.length()); 90 } 91 return; 92 } 93 } 94 super.processComponentKeyEvent( e); 95 } 96 };*/ 97 f_statement.addActionListener( new ActionListener() { 98 public void actionPerformed(ActionEvent e) { 99 process(); 100 } 101 }); 102 panel.add( f_statement); 103 Button button = new Button( "Exec"); 104 button.addActionListener( new ActionListener() { 105 public void actionPerformed(ActionEvent e) { 106 process(); 107 } 108 }); 109 panel.add( button); 110 this.add( "North", panel); 111 f_result = new TextArea( 10, 30); 112 f_result.setEditable( false); 113 this.add( "Center", new ScrollPane().add( f_result)); 114 addWindowListener( new WindowAdapter() { 115 public void windowClosing(WindowEvent e) { 116 dispose(); 117 System.exit( 0); 118 } 119 }); 120 pack(); 121 setVisible( true); 122 } 123 124 void process() { 125 String line = f_statement.getText().trim(); 126 if( line.equals( "quit")) { 127 dispose(); 128 System.exit( 0); 129 return; 130 } 131 s_list.addElement( line); 132 if( s_list.size() == 20) 133 s_list.removeElementAt( 0); 134 cur = s_list.size(); 135 f_statement.setText(""); 136 CharArrayWriter caw = new CharArrayWriter(); 137 PrintWriter pw = new PrintWriter( caw); 138 pw.println( line); 139 try { 140 if( line.startsWith( "select")) 141 Utilities.displayResultSet( pw, sql.executeQuery( line)); 142 else 143 pw.println( sql.executeUpdate( line) + " rows modified"); 144 } catch( Exception e) { 145 pw.println( e.getMessage()); 146 e.printStackTrace( pw); 147 } 148 pw.flush(); 149 caw.flush(); 150 f_result.setText( caw.toString()); 151 f_result.setCaretPosition( 0); 152 } 153 154 } 155

This page was automatically generated by Maven