Hi "Eye OnNet" On Sun, Apr 24, 2011 at 6:34 PM, Eye OnNet <[email protected]> wrote: > Hello. > > In my application I execute a simple sequence of QGIS API functions for > create vector layer from postgres database: > > QgsDataSourceURI uri = QgsDataSourceURI(); > uri.setConnection(ServerIP,port,dbname,username,password); > uri.setDataSource(scheme,table,geom,sql); > QgsVectorLayer *vlayer = new QgsVectorLayer(uri.uri(),"layername", > "postgres"); > if(!vlayer->isValid())qDebug(vlayer->lastError()+vlayer->lastErrorTitle()); > > "isValid()" check failed in application on the one polygon layer but the QGIS > opens this layer successful without an error. Both "lastError()" and > "lastErrorTitle()" return an empty string... How do to recognize cause of > that error?
The lastError() method is currently used for showing errors from rendering, not from layer load stage. When the layer fails to load, usually a QgsMessageOutput class is used to send a message to the user about the cause. In QGIS application a dialog pops up with the message. If you are developing a custom application, the default behavior is to print this to console. It is possible to set a custom message handler in order to process these errors in an appropriate way. Martin Do you run this code _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
