
I am trying to integrate ms access database with salesforce through command line dataloader using odbc driver. I have done 99% successfully but at last I got error saying that......
17729 [databaseAccountExtract] ERROR com.salesforce.dataloader.action.progress.N
ihilistProgressAdapter - Database error encountered during setup of the databas
e configuration: queryAccountAll. Sql error: Invalid Fetch Size.
Here i am providing my code:
process-conf file:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Extract Account From Salesforce and Insert into Database Server -->
<bean id="CustomerInsertProcess" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false">
<description>databaseAccountExtract job gets account info from salesforce and saves info into database server."</description>
<property name="name" value="databaseAccountExtract"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="true"/>
<entry key="sfdc.debugMessagesFile" value="
C:\DLTest1\log\CustomerInsertProcess.log"/>
<entry key="sfdc.endpoint" value="
https://login.salesforce.com"/>
<entry key="sfdc.username" value="
thiru.rixyncs@gmail.com"/>
<!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile
the password is not a valid encrypted value, please generate the real value using encrypt.bat utility -->
<entry key="sfdc.password" value="95c9f53df3439ad5642b424aa4f28dcf"/>
<entry key="process.encryptionKeyFile" value="
C:\DLTest1\key.txt"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="process.operation" value="insert" />
<entry key="process.mappingFile" value="
c:\DLTest1\DatabaseAccountInsertMap.sdl"/>
<entry key="dataAccess.type" value="databaseRead"/>
<entry key="
dataAccess.name" value="queryAccountAll"/>
</map>
</property>
</bean>
</beans>
database-conf file:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dbDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver"/>
<property name="url" value="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=
E:\NickDB\005970_CRMExport_Weekly.mdb"/>
</bean>
<!-- For Account Insert -->
<bean id="queryAccountAll"
class="com.salesforce.dataloader.dao.database.DatabaseConfig">
<property name="dataSource" ref="dbDataSource"/>
<property name="sqlConfig" ref="queryAccountAllsql"/>
</bean>
<bean id="queryAccountAllsql"
class="com.salesforce.dataloader.dao.database.SqlConfig">
<property name="sqlString">
<value>
SELECT Aircraft.ac_country_of_registration FROM Aircraft where Aircraft.ac_country_of_registration="Qatar"
</value>
</property>
<property name="columnNames">
<list>
<value>ac_country_of_registration</value>
</list>
</property>
</bean>
</beans>
mapping SDL file:
#.Mappings
ac_country_of_registration=Name
...........
So, please let me know where did i do mistake.
Or, is there any other way without using command line dataloader?
eagerly anticipating for your reply
Thanks :)