Yurttas/PL/DBL/mssql/F/04/02/00/JDBCScriptRunnerActionHandler.java
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}