[QGIS Commit] r14066 - trunk/qgis/src/core
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Wed Aug 11 16:09:06 EDT 2010
Author: jef
Date: 2010-08-11 20:09:05 +0000 (Wed, 11 Aug 2010)
New Revision: 14066
Modified:
trunk/qgis/src/core/qgsvectorfilewriter.cpp
Log:
fix #2933
Modified: trunk/qgis/src/core/qgsvectorfilewriter.cpp
===================================================================
--- trunk/qgis/src/core/qgsvectorfilewriter.cpp 2010-08-11 19:03:55 UTC (rev 14065)
+++ trunk/qgis/src/core/qgsvectorfilewriter.cpp 2010-08-11 20:09:05 UTC (rev 14066)
@@ -185,6 +185,8 @@
return;
}
+ OGRFeatureDefnH defn = OGR_L_GetLayerDefn( mLayer );
+
QgsDebugMsg( "created layer" );
// create the fields
@@ -193,7 +195,6 @@
mFields = fields;
mAttrIdxToOgrIdx.clear();
- int ogrIdx = 0;
QgsFieldMap::const_iterator fldIt;
for ( fldIt = fields.begin(); fldIt != fields.end(); ++fldIt )
{
@@ -261,7 +262,18 @@
return;
}
- mAttrIdxToOgrIdx.insert( fldIt.key(), ogrIdx++ );
+ int ogrIdx = OGR_FD_GetFieldIndex( defn, mCodec->fromUnicode( attrField.name() ) );
+ if ( ogrIdx < 0 )
+ {
+ QgsDebugMsg( "error creating field " + attrField.name() );
+ mErrorMessage = QObject::tr( "created field %1 not found (OGR error: %2)" )
+ .arg( attrField.name() )
+ .arg( QString::fromUtf8( CPLGetLastErrorMsg() ) );
+ mError = ErrAttributeCreationFailed;
+ return;
+ }
+
+ mAttrIdxToOgrIdx.insert( fldIt.key(), ogrIdx );
}
QgsDebugMsg( "Done creating fields" );
More information about the QGIS-commit
mailing list