Yurttas/PL/DBL/mssql/F/04/02/00/JDBCScriptRunnerActionHandler.java

From ZCubes Wiki
Jump to navigation Jump to search
 1/**
 2 *  Copyright(C) 2003
 3 *  All Rights Reserved. Salih Yurttas, ZCubes, BitsOfCode Software Systems, Inc..
 4 *
 5 *  Permission to use, copy, modify, and distribute this
 6 *  software and its documentation forEDUCATIONAL purposes
 7 *  and without fee is hereby granted provided that this
 8 *  copyright notice appears in all copies.
 9 *
10 *  @date   : June 1, 2003.
11 *  @author : Salih Yurttas, Brian Autry.
12 */
13
14
15import javax.swing.*;
16import java.awt.*;
17import java.awt.event.*;
18
19import java.sql.*;
20
21import java.util.regex.*;
22
23public class JDBCScriptRunnerActionHandler implements ActionListener {
24  private JTextArea txtOut;
25  private JTextField txtIn;
26
27  public JDBCScriptRunnerActionHandler(JTextArea out,
28                                       JTextField in) {
29    txtOut = out;
30    txtIn = in;
31  }
32
33  public void actionPerformed(ActionEvent aE) {
34    JDBCScriptRunnerFileIO jFIO = new JDBCScriptRunnerFileIO();
35
36    String updateResult;
37
38    ResultSet rs;
39    ResultSetMetaData rSMD;
40
41    DatabaseManager dm = new DatabaseManager();
42
43    String query = jFIO.readFile(txtIn.getText());
44    String[] queries = query.split(";");
45
46    txtOut.setText("");
47
48    try {
49      for(int k=0; k<queries.length-1; k++) {
50        txtOut.setText(txtOut.getText() + queries[k]);
51
52        if(queries[k].indexOf("SELECT")>-1) {
53          rs = dm.query(queries[k]);
54          if(rs!=null) {
55            rSMD = rs.getMetaData();
56
57            int count = rSMD.getColumnCount();
58
59            // Print Column Headers
60            txtOut.setText(txtOut.getText() + "\nQuery Results:\n");
61            for(int i=1; i<=count; i++)
62              txtOut.setText(txtOut.getText() + rSMD.getColumnName(i) + "\t");
63
64            txtOut.setText(txtOut.getText() + "\n");
65
66            // Print the Query Results
67            while(rs.next()) {
68              for(int i=1; i<=count; i++)
69                txtOut.setText(txtOut.getText() + rs.getString(i) + "\t");
70              txtOut.setText(txtOut.getText() + "\n");
71            }
72          }
73          else
74            txtOut.setText(txtOut.getText() + "\nQuery Failed!");
75        }
76        else {
77          updateResult = dm.update(queries[k]);
78          txtOut.setText(txtOut.getText() + "\n");
79          txtOut.setText(txtOut.getText() + updateResult);
80        }
81      }
82    }
83    catch(Exception e) {
84      e.printStackTrace();
85    }
86  }
87
88}