[FOSSGIS-Talk] GRASS mit PostgreSQL
Markus Neteler
neteler at osgeo.org
Fr Dez 16 17:03:40 CET 2011
Moin Moin,
2011/12/16 Tom Gottfried <tom.gottfried at tum.de>:
> Hallo nochmal,
>
> Am 16.12.2011 14:53, schrieb Horst Düster:
>
>> Hallo Tom
>>
>> Das ist sieht mir wie ein DBF Problem aus. Ich nehme an, dass Du als GRASS
>> DB-Treiber DBF eingestellt hast.
Um welche GRASS Version handelt es sich denn?
> Nein und ja. Der Fehler kommt sowohl mit PG als auch mit DBF als DB-Treiber.
> Mit sqlite kann ich die Daten aber tatsächlich importieren (Obwohl später
> auch Warnungen auftreten, dass "datetime" nicht unterstützt ist).
Das sollte gglfs korrigiert werden.
Im source code sehe ich:
PG-Driver:
case PG_TYPE_TIMESTAMP:
*sqltype = DB_SQL_TYPE_TIMESTAMP;
*size = 22; /* YYYY-MM-DD HH:MM:SS+TZ */
break;
DBF-Driver:
case (SQLP_DATE): /* DATE treated as string unless
SHAPELIB/DBFLIB supports date type */
*type = DBF_CHAR;
*width = 10; /* 2004-01-23 = 10 chars */
*decimals = 0;
break;
SQLite-Driver:
case DB_SQL_TYPE_TIMESTAMP:
dt = &value->t;
G_debug(3, "sqlite fetched timestamp: %s", text);
ns = sscanf(text, "%4d-%2d-%2d %2d:%2d:%lf",
&dt->year, &dt->month, &dt->day,
&dt->hour, &dt->minute, &dt->seconds);
if (ns != 6) {
append_error("Cannot scan timestamp:");
append_error(text);
report_error();
return DB_FAILED;
}
break;
Da eigentlich (aus meiner Sicht) alles da sein sollte, bitte ich um
ein Ticket, wenn die GRASS Version >= 6.4 ist:
http://trac.osgeo.org/grass/
>
>> Besser ist es SQLite als DB zu verwenden. Das unterstützt u.a. mehr
>> Datentypen und auch lange Attributnamen.
Dem stimme ich zu. In GRASS 7 ist es der Standardtreiber.
Schoene Gruesse
Markus