Icon View Incident Report

Serious Serious
Reported By: Jukke Laine
Reported On: 3/7/2014
For: Version 4.37 Build 3
# 4019 DBISAM ODBC Driver Only Returning One Row When Used with a SQL Server Linked Server

I have bought and installed DBISAM ODBC Standard Driver on a Windows 7 (64bit) computer. I added a 64bit ODBC DSN for a remote DBISAM database (named FORSSA_DBISAM). I tried connecting the remote database with the Database System Utility and there everything works fine (in LASETUS table there are 13 rows).

Then I added on SQL Server 2008 R2 Express a Linked Server with Microsoft OLE DB Driver with ODBC Drivers and defined the following settings for MSDASQL provider (see below). Now I was able to run a SELECT query from SQL Server Management Studio, but somehow it always returns only one row.

Comments Comments and Workarounds
The problem was a conflict between the default remote read-ahead in the DBISAM ODBC DSN and SQL Server setting a rowset size for retrieving records from the driver. The remote read size would get used initially for a single record read with a rowset size of 1, and then SQL Server would use a much larger rowset size for subsequent requests. This would effectively cause a "skip" of x number of rows. The workaround was to set the remote read size in the DBISAM ODBC DSN to 1, instead of the default of 50.

Resolution Resolution
Fixed Problem on 3/10/2014 in version 4.38 build 1

Products Affected Products Affected
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard with Source