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