Error initializing the cache for disk storage

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I've made a program that fetches data from an ODBC data source. Everything works fine when the table contains only a few rows. The problem is that when there are many rows (6000, in this case), the program terminates with the following OdbcException

"ERROR [26000] [ATI][OpenRDA ODBC]Error initializing the cache for disk storage

The SQL statement is simple
"SELECT * FROM Items;

If the SQL statement is reduced to this
"SELECT ItemID,ItemNumber,QuantityOnHand,ValueOnHand FROM Items;
then it works, fetching all 6000 rows. But, this is not useful to me in this form. I could hack my way through, fetching 4 columns at a time, and patching them together at the end, but that would stink

Does anyone know why this error is occuring? Even better, how can I fix this problem

Thanks
Mike
 
OK way after the original post but I ran into the same issue wit
MYOB/Access and found a couple workarounds.

First is to put a dummy UNION on the end of the SQL.

SELECT * FROM MYOB_SalesHistory
UNION
SELECT * FROM MYOB_SalesHistory WHERE 1=2

This forces the query to NOT use disk cache but to dump to RA
instead.

The REAL solution is probably you need to create the cache folder. I
the Windows directory there should be a file called openrda.ini. Ther
should be a string with :

CacheOptions=PATH=C:\MYOBODBC\cache;INITIAL_SIZE=10;INCREMENT_SIZE=5;MAX_SIZE=5000;DATABLOCK_SIZE=64

What you want to look for is the path variable. The cache folder di
not exist in C:\MYOBODBC when I looked--I created the cache folder an
the queries now run.

Jake



=?Utf-8?B?TWlrZSBEYXZpc29u?= said:
*I've made a program that fetches data from an ODBC data source.
Everything works fine when the table contains only a few rows. Th
problem is that when there are many rows (6000, in this case), th
program terminates with the following OdbcException:

"ERROR [26000] [ATI][OpenRDA ODBC]Error initializing the cache fo
disk storage"

The SQL statement is simple:
"SELECT * FROM Items;"

If the SQL statement is reduced to this:
"SELECT ItemID,ItemNumber,QuantityOnHand,ValueOnHand FROM Items;"
then it works, fetching all 6000 rows. But, this is not useful to m
in this form. I could hack my way through, fetching 4 columns at
time, and patching them together at the end, but that would stink.

Does anyone know why this error is occuring? Even better, how can
fix this problem?

Thanks,
Mike


-
jakeros
 
Back
Top