geotools导出shapefile出错: java.io.IOException: Current fid index is null, next must be called before write()
2014-03-20 10:35
519 查看
geotools导出shapefile出错:
java.io.IOException: Current fid index is null, next must be called before write()
经过查找,发现出现该问题的原因是SQLServer数据库中有几个字符型字段的类型为NVARCAHR类型。
NVARCHAR类型支持双字节,shapefile数据是用DBF文件来存储。字符类型text只支持单字节数据。
因此,如果字段QI_YUAN在SQLServer定义成NVARCHAR(6),导出的DBF结构为text(6)。QI_YUAN值为"人工造林"时,
存入SQLServer是没问题的,但存入DBF就会出错。DBF将"人工造林"算成8个字节,超出定义的text(6)。
解决方法:
将SQLServer中可能出错的NVARCHAR字段类型长度加长或增加一倍也行。
java.io.IOException: Current fid index is null, next must be called before write()
经过查找,发现出现该问题的原因是SQLServer数据库中有几个字符型字段的类型为NVARCAHR类型。
NVARCHAR类型支持双字节,shapefile数据是用DBF文件来存储。字符类型text只支持单字节数据。
因此,如果字段QI_YUAN在SQLServer定义成NVARCHAR(6),导出的DBF结构为text(6)。QI_YUAN值为"人工造林"时,
存入SQLServer是没问题的,但存入DBF就会出错。DBF将"人工造林"算成8个字节,超出定义的text(6)。
解决方法:
将SQLServer中可能出错的NVARCHAR字段类型长度加长或增加一倍也行。
相关文章推荐
- Caused by: java.io.IOException: Target host must not be null, or set in parameters. scheme=null
- 网络访问过程中遇到的java.io.IOException: Target host must not be null的问题
- 网络访问过程中遇到的java.io.IOException: Target host must not be null的问题
- java.io.FileNotFoundException 和 requestFeature() must be called before adding content
- java.io.IOException: ExceptionTarget host must not be null
- Android开发中与服务器交互时,遇到java.io.IOException: Target host must not be null的问题
- PreferenceActivity里自定义标题栏(title bar)出错:requestFeature() must be called before ad
- PreferenceActivity里自定义标题栏(title bar)出错:requestFeature() must be called before adding content
- Java初学习-unreported exception java.io.IOException; must be caught or declared to be thrown
- geotools学习之一:java.lang.IllegalArgumentException: Argument "sourceCRS" should not be null.(未完)
- 【FAQ】findbugs 出错:java.io.IOException: No files to analyze could be opened
- PreferenceActivity里自定义标题栏(title bar)出错:requestFeature() must be called before adding content
- Not-null property references a transient value - transient instance must be saved before current ope
- java.sql.SQLException: The SQL statement must not be null or empty.这个错误
- Android showDialog时报错requestFeature() must be called before adding content
- 经常遇到Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be e
- java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- java.lang.IllegalArgumentException: 'name' must not be null
- android.util.AndroidRuntimeException: requestFeature() must be called before adding content
- requestFeature() must be called before adding content产生原因和解决办法