1 package de.webman.form.db.queries; 2 3 import java.sql.Connection ; 4 import java.sql.SQLException ; 5 import java.util.Enumeration ; 6 import com.teamkonzept.db.TKPrepQuery; 7 import com.teamkonzept.lib.TKHashtable; 8 import de.webman.form.db.FieldConstants; 9 import de.webman.form.db.FormConstants; 10 11 60 public class FormExists 61 extends TKPrepQuery 62 { 63 64 66 69 private final static boolean IS_PREPARED = true; 70 71 74 private final static boolean[] SET_RELEVANTS = 75 { 76 true 77 }; 78 79 80 82 87 public final void initQuery (Connection connection) 88 { 89 super.initQuery(connection, 90 IS_PREPARED, 91 null, 92 null, 93 SET_RELEVANTS, 94 null); 95 } 96 97 104 public final boolean execute () 105 throws SQLException 106 { 107 String [] order = new String [super.queryParams.size()]; 109 110 TKHashtable types = new TKHashtable(); 112 113 StringBuffer sql = new StringBuffer ("SELECT FO.FORM_ID FROM FORM FO, FIELD FI WHERE "); 115 116 int index = 0; 118 119 Enumeration keys = super.queryParams.keys(); 121 122 while (keys.hasMoreElements()) 123 { 124 if (index > 0) 126 { 127 sql.append("AND "); 128 } 129 130 String parameter = keys.nextElement().toString(); 132 133 order[index++] = parameter; 135 136 if (FormConstants.COLUMN_NAMES[FormConstants.FORM_ID].equals(parameter)) 137 { 138 types.put(parameter, FormConstants.COLUMN_TYPES[FormConstants.FORM_ID]); 140 141 sql.append("FO.FORM_ID != ? "); 143 144 continue; 146 } 147 148 if (FormConstants.COLUMN_NAMES[FormConstants.FORM_TYPE].equals(parameter)) 149 { 150 types.put(parameter, FormConstants.COLUMN_TYPES[FormConstants.FORM_TYPE]); 152 153 sql.append("FO.FORM_TYPE = ? "); 155 156 continue; 158 } 159 160 if (FieldConstants.COLUMN_NAMES[FieldConstants.FIELD_NAME].equals(parameter) || 161 FormConstants.COLUMN_NAMES[FormConstants.FORM_NAME].equals(parameter)) 162 { 163 types.put(parameter, FieldConstants.COLUMN_TYPES[FieldConstants.FIELD_NAME]); 165 166 sql.append("FI.FIELD_NAME = ? "); 168 169 continue; 171 } 172 173 if (FieldConstants.COLUMN_NAMES[FieldConstants.FIELD_SHOW_NAME].equals(parameter) || 174 FormConstants.COLUMN_NAMES[FormConstants.FORM_DESCRIPTION].equals(parameter)) 175 { 176 types.put(parameter, FieldConstants.COLUMN_TYPES[FieldConstants.FIELD_SHOW_NAME]); 178 179 sql.append("FI.FIELD_SHOW_NAME = ? "); 181 182 continue; 184 } 185 } 186 187 sql.append("AND FO.FORM_TYPE != 42 AND FO.FORM_ID = FI.FORM_ID AND FI.FIELD_ID = 0"); 189 190 super.paramOrder = order; 192 193 super.paramTypes = types; 195 196 super.sqlString = sql.toString(); 198 199 super.stmt = super.conn.prepareStatement(super.sqlString); 201 202 return super.execute(); 203 } 204 205 } 206 | Popular Tags |