[GRASS-dev] Re: [GRASS GIS] #1159: v.in.ascii fails with long text file in WinGRASS-6.4.0-1

GRASS GIS trac at osgeo.org
Thu Sep 16 19:48:47 EDT 2010


#1159: v.in.ascii fails with long text file in WinGRASS-6.4.0-1
------------------------+---------------------------------------------------
 Reporter:  lponti      |       Owner:  grass-dev@…              
     Type:  defect      |      Status:  new                      
 Priority:  normal      |   Milestone:  6.4.1                    
Component:  Vector      |     Version:  6.4.0                    
 Keywords:  v.in.ascii  |    Platform:  MSWindows 7              
      Cpu:  x86-32      |  
------------------------+---------------------------------------------------

Comment(by hamish):

 ok, thanks,

 {{{
 ...
 D2/3: Write 71 rows
 D2/3: Written 71 records
 Fülle Tabelle...
 D2/3: db_close_database() result: 0  (0 means success)
 D2/3: db_shutdown_driver() failed
 }}}

 ok, from Luigi's tests we know it is DB backend independent, and from
 Helmut's test we know it is the driver shutdown not the closing of the
 database.

 {{{
 ERROR: Konnte Attributetabelle nicht schliessen. Der DBMI-Treiber hat
 nicht alle Attribute akzeptiert.
 }}}

 (could you run with "LANG=C v.in.ascii ..."? I can guess the meaning but
 my deutsch is not as good as your english..)



 in 6.5svn db_shutdown_driver() for WinGrass effectively boils down to:
 {{{
 #include <stdlib.h>
 #include <process.h>
 #include <grass/dbmi.h>
 #include "macros.h"

 /*!
   \brief Closedown the driver, and free the driver structure

   <b>Note:</b> the management of the memory for the driver structure
   probably should be handled differently.

   db_start_driver() could take a pointer to driver structure as
   an argument, instead of returning the pointer to allocated
   then there would be no hidden free required

   \param driver db driver

   \return status (?)
 */
 int db_shutdown_driver(dbDriver * driver)
 {
     int status;

     db__set_protocol_fds(driver->send, driver->recv);
     DB_START_PROCEDURE_CALL(DB_PROC_SHUTDOWN_DRIVER);

     /* close the communication FILEs */
     fclose(driver->send);
     fclose(driver->recv);

     driver->send = NULL;
     driver->recv = NULL;

     /* wait for the driver to finish */
     status = -1;

     /* TODO: convert status to something like from wait? */
     _cwait(&status, driver->pid, WAIT_CHILD);

     driver->pid = 0;

     /* free the driver structure. THIS IS GOOFY */
     free(driver);

     return status;
 }


 but that's about all the help I can give,
 Hamish

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/1159#comment:7>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list