Revision 10626 trunk/extensions/extPublish/src/org/gvsig/remoteservices/conf/mapserver/test/AddFieldToDBF.java

View differences:

AddFieldToDBF.java
43 43

  
44 44
import java.io.File;
45 45
import java.io.IOException;
46
import java.sql.Date;
47 46
import java.sql.Types;
48 47
import java.util.Calendar;
49 48

  
50
import com.hardcode.gdbms.engine.data.DataSourceFactory;
49
import com.hardcode.gdbms.driver.exceptions.CloseDriverException;
50
import com.hardcode.gdbms.driver.exceptions.InitializeWriterException;
51
import com.hardcode.gdbms.driver.exceptions.OpenDriverException;
52
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
51 53
import com.hardcode.gdbms.engine.data.driver.DriverException;
52 54
import com.hardcode.gdbms.engine.values.Value;
53 55
import com.hardcode.gdbms.engine.values.ValueFactory;
56
import com.iver.cit.gvsig.exceptions.visitors.ProcessWriterVisitorException;
57
import com.iver.cit.gvsig.exceptions.visitors.StartWriterVisitorException;
58
import com.iver.cit.gvsig.exceptions.visitors.StopWriterVisitorException;
54 59
import com.iver.cit.gvsig.fmap.core.DefaultRow;
55
import com.iver.cit.gvsig.fmap.core.IRow;
56 60
import com.iver.cit.gvsig.fmap.drivers.FieldDescription;
57 61
import com.iver.cit.gvsig.fmap.drivers.ITableDefinition;
58
import com.iver.cit.gvsig.fmap.drivers.TableDefinition;
59 62
import com.iver.cit.gvsig.fmap.drivers.dbf.DBFDriver;
60 63
import com.iver.cit.gvsig.fmap.edition.DefaultRowEdited;
61
import com.iver.cit.gvsig.fmap.edition.EditionException;
62
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
64
import com.iver.cit.gvsig.fmap.edition.IRowEdited;
63 65

  
64 66
/**
65 67
* @author fjp
66
* 
68
*
67 69
* Abrimos un dbf y le a?adimos un campo. Lo rellenamos con la fecha actual con formato cadena.
68 70
*
69 71
*/
......
76 78
		String []fechas = {"2000-12-01", "2000-11-17"};
77 79
		prueba.add("prb.dbf", "date", fechas);
78 80
	}
79
	
81

  
80 82
	public void add(String dbfFile, String fieldName, String[] values) {
81 83
       DBFDriver driver = new DBFDriver();
82 84
       File myFile = new File(dbfFile);
......
84 86
    	   System.out.println("Adding time to "+dbfFile);
85 87
       	// Abrimos el fichero
86 88
			driver.open(myFile);
87
						
89

  
88 90
			// Comprobamos que tenemos acceso de escritura.
89 91
			if (driver.canSaveEdits())
90
			{				
91
				
92
			{
93

  
92 94
				// Creamos el nuevo campo
93
				
95

  
94 96
				FieldDescription dateField = new FieldDescription();
95 97
				dateField.setFieldName(fieldName);
96 98
				dateField.setFieldType(Types.VARCHAR);
97 99
				dateField.setFieldLength(20);
98
				
100

  
99 101
				// Creamos un array con el nuevo campo
100 102
				ITableDefinition tableDef = driver.getTableDefinition();
101 103
				FieldDescription[] oldFields = tableDef.getFieldsDesc();
......
105 107
				newFields[numOldFields] = dateField;
106 108

  
107 109
				tableDef.setFieldsDesc(newFields);
108
				
110

  
109 111
				driver.initialize(tableDef);
110 112
				driver.preProcess();
111 113
				Value[] att = new Value[newFields.length];
112 114
				Calendar today = Calendar.getInstance();
113 115
				for (int i=0; i < driver.getRowCount(); i++)
114
				{	
116
				{
115 117
					for (int j=0; j < numOldFields; j++)
116 118
					{
117 119
						att[j] = driver.getFieldValue(i, j);
......
119 121
					att[numOldFields] = ValueFactory.createValue(values[i]);
120 122
					DefaultRow row = new DefaultRow(att);
121 123
					DefaultRowEdited edRow = new DefaultRowEdited(row,
122
							DefaultRowEdited.STATUS_MODIFIED, i);
124
							IRowEdited.STATUS_MODIFIED, i);
123 125

  
124 126
					driver.process(edRow);
125 127
				}
126 128
				driver.postProcess();
127
				
129

  
128 130
				System.out.println("Fichero modificado");
129
				
131

  
130 132
			}
131 133
			else
132 134
			{
133 135
				System.err.println("El fichero no tiene permiso de edici?n");
134 136
			}
135 137
			driver.close();
136
		} catch (IOException e) {
138
		} catch (OpenDriverException e) {
137 139
			// TODO Auto-generated catch block
138 140
			e.printStackTrace();
139
		} catch (EditionException e) {
141
		} catch (InitializeWriterException e) {
140 142
			// TODO Auto-generated catch block
141 143
			e.printStackTrace();
142
		} catch (DriverException e) {
144
		} catch (ReadDriverException e) {
143 145
			// TODO Auto-generated catch block
144 146
			e.printStackTrace();
147
		} catch (StartWriterVisitorException e) {
148
			// TODO Auto-generated catch block
149
			e.printStackTrace();
150
		} catch (ProcessWriterVisitorException e) {
151
			// TODO Auto-generated catch block
152
			e.printStackTrace();
153
		} catch (StopWriterVisitorException e) {
154
			// TODO Auto-generated catch block
155
			e.printStackTrace();
145 156
		}
146
       
147 157

  
148
		
158

  
159

  
149 160
	}
150 161

  
151 162

  

Also available in: Unified diff