1 package de.webman.form.db.queries; 2 3 import java.sql.Connection ; 4 import java.sql.SQLException ; 5 import java.util.Vector ; 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 55 public class SelectFormProperties 56 extends TKPrepQuery 57 { 58 59 61 64 private final static boolean IS_PREPARED = true; 65 66 69 private final static boolean[] SET_RELEVANTS = 70 { 71 true 72 }; 73 74 75 77 80 private Vector list = null; 81 82 83 85 90 public void initQuery (Connection connection) 91 { 92 super.initQuery(connection, 93 IS_PREPARED, 94 null, 95 null, 96 SET_RELEVANTS, 97 null); 98 } 99 100 106 public final void setQueryParams (String name, Object value) 107 { 108 name = (new StringBuffer (name)).append("_") 109 .append(super.queryParams.size()) 110 .toString(); 111 112 if (this.list == null) 113 { 114 this.list = new Vector (); 115 } 116 117 list.addElement(name); 118 119 super.setQueryParams(name, value); 120 } 121 122 129 public final boolean execute () 130 throws SQLException 131 { 132 String [] order = new String [this.list.size()]; 134 135 TKHashtable types = new TKHashtable(); 137 138 StringBuffer sql = new StringBuffer ("SELECT FO.FORM_ID, FO.FORM_TYPE, FI.FIELD_NAME, FI.FIELD_SHOW_NAME FROM FORM FO, FIELD FI WHERE FO.FORM_ID IN ("); 140 141 for (int index = 0; index < this.list.size(); index++) 142 { 143 if (index > 0) 144 { 145 sql.append(", "); 146 } 147 148 sql.append("?"); 150 151 String parameter = this.list.elementAt(index).toString(); 153 154 order[index] = parameter; 156 157 types.put(parameter, FormConstants.COLUMN_TYPES[FormConstants.FORM_ID]); 159 160 } 161 162 this.list.clear(); 164 165 sql.append(") AND FO.FORM_ID = FI.FORM_ID AND FI.FIELD_ID = 0"); 167 168 super.paramOrder = order; 170 171 super.paramTypes = types; 173 174 super.sqlString = sql.toString(); 176 177 super.stmt = super.conn.prepareStatement(super.sqlString); 179 180 return super.execute(); 181 } 182 183 } 184 | Popular Tags |