Hello,
I'am now ok with dynamic datasource
Thread: http://forums.smartclient.com/showthread.php?t=20962
The servlet should extends DataSourceLoader.
Now in getDataSource I setup my datasource.
Is it possible to get the fields dynamically direct from the database ?
I have see DataSource.forName(dsname, DSRequest) (For what is this method ?)
and DataSource.fromXML(xml, DSRequest) (you get the xml with DSRequest ? direct from database ?)
I'am now ok with dynamic datasource
Thread: http://forums.smartclient.com/showthread.php?t=20962
The servlet should extends DataSourceLoader.
Now in getDataSource I setup my datasource.
Is it possible to get the fields dynamically direct from the database ?
I have see DataSource.forName(dsname, DSRequest) (For what is this method ?)
and DataSource.fromXML(xml, DSRequest) (you get the xml with DSRequest ? direct from database ?)
Code:
public class CustomGenerator implements DynamicDSGenerator { @Override public DataSource getDataSource(String arg0, DSRequest arg1) { DataSource ds = null; System.err.println("@@@@@@"+arg0); String table = arg0.split("_")[1]; try { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("<DataSource"); stringBuffer.append(" ID=\""+table+"\""); stringBuffer.append(" serverType=\"sql\""); stringBuffer.append(" tableName=\""+table+ "\""); stringBuffer.append(">"); stringBuffer.append("<fields>"); stringBuffer.append("<field name=\"id\" type=\"integer\" primaryKey=\"true\"/>"); stringBuffer.append("<field name=\"marque\" type=\"text\" length=\"2147483647\"/>"); stringBuffer.append("<field name=\"type\" type=\"text\" length=\"2147483647\"/>"); stringBuffer.append("</fields>"); stringBuffer.append("</DataSource>"); PrintWriter pw = new PrintWriter(new File("ds/" + table + ".ds.xml")); pw.print(stringBuffer.toString()); pw.close(); System.out.println(stringBuffer); ds = DataSource.fromXML(stringBuffer.toString()); } catch (Exception e) { e.printStackTrace(); } return ds; }
Comment