Hi Romain,
the only way I can imagine so to retrieve
field lengths and types is by "sniffing"
them on a first preliminary analysis pass.

You can easily do such a thing using few SQL
queries: and the basic tools to be used are
the ones I already reported on my previous post.

Pass I:
-------
SELECT DISTINCT typeof(col-1), ..., typeof(col-N) 
FROM tbl-name;
  
so you can get the data-type(s) actually stored
into the table/layer.
obviously when mixed-types are found for the same
column, some carefully planned format transposition
is required (i.e. promoting INTEGERs to FLOATs,
transforming numbers into TEXT ...)

Pass II:
--------
SELECT Max(length(col-1)), ..., Max(length(col-N)
FROM tbl-name
WHERE typeof(col-1) = 'text' AND ...
  typeof(col-N) = 'text';

so you can get max-length for any text-type column

----
both them are plain SQL queries, so I suppose
it would be absolutely easy execute them from 
your Python code.

bye Sandro

_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to