1 11 12 package com.nilostep.xlsql.sql.hsqldb; 13 14 import com.nilostep.xlsql.sql.xlSql; 15 import com.nilostep.xlsql.database.*; 16 import com.nilostep.xlsql.sql.*; 17 18 import java.sql.*; 19 import java.util.regex.*; 20 21 26 public class xlHsqldb extends xlSql { 27 28 33 public xlHsqldb(com.nilostep.xlsql.database.xlDatabase database) { 34 super(database); 35 36 cmd = new String [7]; 37 cmd[INSERT] = "\\s*[Ii][Nn][Ss][Ee][Rr][Tt].*[Ii][Nn][Tt][Oo].*[Vv][Aa][Ll][Uu][Ee][Ss].*"; 38 cmd[UPDATE] = "\\s*[Uu][Pp][Dd][Aa][Tt][Ee].*"; 39 cmd[DELETE] = "\\s*[Dd][Ee][Ll][Ee][Tt][Ee].*[Ff][Rr][Oo][Mm].*"; 40 cmd[CREATE_TABLE] = "\\s*[Cc][Rr][Ee][Aa][Tt][eE].*[Tt][Aa][Bb][Ll][Ee].*"; 41 cmd[DROP_TABLE] = "\\s*[Dd][Rr][Oo][Pp].*[Tt][Aa][Bb][Ll][Ee].*"; 42 cmd[RENAME_TABLE] = "\\s*[Aa][Ll][Tt][Ee][Rr].*[Tt][Aa][Bb][Ll][Ee].*" + 43 "[Rr][Ee][Nn][Aa][Mm][Ee].*[Tt][Oo].*"; 44 cmd[ALTER_TABLE] = "\\s*[Aa][Ll][Tt][Ee][Rr].*[Tt][Aa][Bb][Ll][Ee].*" + 45 "[Cc][Oo][Ll][Uu][Mm][Nn].*"; 46 } 47 48 50 protected String [] getVars(int cmd, 51 String sql) { 52 String [] v = new String [4]; 53 String tmp = ""; 54 55 switch (cmd) { 56 case INSERT: 57 tmp = sql.replaceAll( 58 "\\s*[Ii][Nn][Ss][Ee][Rr][Tt].*[Ii][Nn][Tt][Oo]\\s*", 59 ""); 60 tmp = tmp.substring(0, tmp.indexOf("(")); 61 tmp = tmp.replaceAll("\\s*[Vv][Aa][Ll][Uu][Ee][Ss].*", ""); 62 break; 63 64 case UPDATE: 65 tmp = sql.replaceAll("\\s*[Uu][Pp][Dd][Aa][Tt][Ee]\\s*", ""); 66 tmp = tmp.replaceAll("\\s*[Ss][Ee][Tt].*", ""); 67 break; 68 69 case DELETE: 70 tmp = sql.replaceAll( 71 "\\s*[Dd][Ee][Ll][Ee][Tt][Ee].*[Ff][Rr][Oo][Mm]\\s*", 72 ""); 73 tmp = tmp.replaceAll("\\s*[Ww][Hh][Ee][Rr][Ee].*", ""); 74 break; 75 76 case CREATE_TABLE: 77 tmp = sql.replaceAll("\\s*[Cc][Rr][Ee][Aa][Tt][Ee]\\s*", ""); 78 tmp = tmp.substring(6); 79 tmp = tmp.replaceAll("\\s*[(].*", ""); 80 break; 81 82 case DROP_TABLE: 83 tmp = sql.replaceAll("\\s*[Dd][Rr][Oo][Pp]\\s*", ""); 84 tmp = tmp.substring(6); 85 tmp = tmp.replaceAll("\\s*[Ii][Ff].*[Ee][Xx][Ii][Ss][Tt][Ss]\\s*",""); 86 break; 87 88 case RENAME_TABLE: 89 tmp = sql.replaceAll("\\s*[Aa][Ll][Tt][Ee][Rr]\\s*", ""); 90 tmp = tmp.trim(); 91 tmp = tmp.substring(6); 92 93 String [] s = tmp.split("[Rr][Ee][Nn][Aa][Mm][Ee].*[Tt][Oo]"); 94 String tmp_old = s[0].trim(); 95 tmp_old = tmp_old.replaceAll("[\"]", ""); 96 tmp_old = tmp_old.replaceAll("[']", ""); 97 tmp = s[1].trim(); 98 tmp = tmp.replaceAll("[\"]", ""); 99 100 if (tmp_old.indexOf(DOT) == -1) { 101 v[2] = "SA"; 102 v[3] = tmp_old; 103 } else { 104 v[2] = tmp_old.substring(0, tmp_old.indexOf(DOT)); 105 v[3] = tmp_old.substring(1 + tmp_old.indexOf(DOT), 106 tmp_old.length()); 107 } 108 109 break; 110 111 case ALTER_TABLE: 112 tmp = sql.replaceAll("\\s*[Aa][Ll][Tt][Ee][Rr]\\s*", ""); 113 tmp = tmp.substring(5); 114 tmp = tmp.substring(0, tmp.indexOf(" ")); 115 break; 116 117 default: 118 break; 119 } 120 121 tmp = tmp.trim(); 122 tmp = tmp.replaceAll("[;]", ""); 123 tmp = tmp.replaceAll("[\"]", ""); 124 tmp = tmp.replaceAll("[']", ""); 125 if (tmp.indexOf(DOT) == -1) { 126 v[0] = "SA"; 127 v[1] = tmp; 128 } else { 129 v[0] = tmp.substring(0, tmp.indexOf(DOT)); 130 v[1] = tmp.substring(1 + tmp.indexOf(DOT), tmp.length()); 131 } 132 return v; 133 } 134 } | Popular Tags |