[FOSSGIS-Talk] GRASS mit PostgreSQL

Tom Gottfried tom.gottfried at tum.de
Mi Dez 21 11:23:13 CET 2011


Hallo Markus,

Am 16.12.2011 17:03, schrieb Markus Neteler:
> Moin Moin,
>
>
> Um welche GRASS Version handelt es sich denn?

6.4.2RC2

>
>> 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;
>

Ich verstehe den Code nicht, sehe aber mehrmals "TIMESTAMP" und nicht "DATETIME". Ersteres ist ein 
(Standard?) SQL-Datentyp, letzteres ist glaub ich eine Verirrung von MySQL und offenbar auch ein 
Datentyp in OGR (siehe Ausgabe von ogrinfo in meiner ersten Mail bzw. im Ticket (s.u.)).

> 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/

http://trac.osgeo.org/grass/ticket/1517

Gruß,
Tom

>
>>
>>> 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

-- 
Technische Universität München
Department für Pflanzenwissenschaften
Lehrstuhl für Grünlandlehre
Alte Akademie 12
85350 Freising / Germany
Phone: ++49 (0)8161 715324
Fax:   ++49 (0)8161 713243
email: tom.gottfried at wzw.tum.de
http://www.wzw.tum.de/gruenland