[Qgis-developer] Re: QGIS API: change layer field length

romain riviere romain.riviere.974 at gmail.com
Fri Jul 15 07:06:39 EDT 2011


I'm aware of that.
But with python, i'd like to retrieve field length,
and pass the values to qgsvectorlayer's fields.
And I don't know how....

2011/7/15, a.furieri at lqt.it <a.furieri at lqt.it>:
> On Fri, 15 Jul 2011 11:38:56 +0200, Tim Sutton wrote
>> Hi
>>
>> I'm speaking under correction, but last time I read the sqllite docs
>> I think it was the case that spatialite fields have no type and no length.
>>
>
> Hi Tim,
>
> you are absolutely right.
> SQLite has very loose typing: and the same is
> then obviously inherited by SpatiaLite too.
>
> Data-type declarations in CREATE TABLE or
> ALTER TABLE ADD COLUMN merely are intended
> to be "cosmetic", but aren't enforced at all
> when performing INSERT / UPDATE
>
> And different "cells" into the same column
> can legitimately store any data type at your
> will. So, when using SQLite, each single "cell"
> surely store some value belonging to a well
> defined data-type, but this doesn't affects
> the column as a whole.
>
> SQLite "cell values" can store the following
> 'native' data-types:
>
> SQLITE_NULL (self-explanatory)
>
> SQLITE_INTEGER [8-bit, 16-bit, 32-bit or 64-bit:
>   depending on actual value precision]
>
> SQLITE_FLOAT [f.p. DOUBLE PRECISION]
>
> SQLITE_TEXT [arbitrary length: usually ranging
>   from 1 byte to 1MB, but depends on build-opts]
>
> SQLITE_BLOB [arbitrary length: usually ranging
>   from 1 byte to 1GB, but depends on build-opts]
>
>
> some useful related SQL functions:
> ----------------------------------
> SELECT DISTINCT typeof(col-name) from tbl-name;
>   [useful to identify actual column data-types]
>
> SELECT Max(length(col-name)) FROM tbl-name
> WHERE typeof(col-name) = 'text';
>   [useful to identify max-length for text columns]
>
> bye Sandro
>
>


-- 
Romain,
*
*


More information about the Qgis-developer mailing list