ODBC problem

Filippo Galimberti fil_esrg at eleseal.it
Mon Aug 27 16:11:20 EDT 2007


Dear All,
I have a problem with Revolution accessing databases through ODBC. 
I'm running Revolution Studio 2.6.1 build 152 on Windows XP.

1) Background
We are collecting scientific research data in field using up to 25 
iPaq PocketPC at a time. For data collection we run a simple database 
management software on the PPCs, called HanDBase 
(http://www.ddhsoftware.com/). We collect a wide array of data, so we 
had to put about 50 linked databases on the PPCs. HanDBase has an 
ODBC driver. Revolution is used to access the various HanDBase 
databases on the various PPCs through ODBC, to process and store the 
data, to join other data sources (eg, results of lab analysis on 
biological samples), and prepare tables to be submitted for analysis 
to various numerical and statistical packages.

2) The problem
When we read data from HanDBase using ODBC we got a systematic error 
for date and time fields; all other fields are read correctly. The 
date fields are read on all records as the numeric value "20", and 
the time fields are read on all records as the numeric value "18". We 
had this problem in the past, starting with Revolution 2.1. At the 
time, we were interested in date fields only, and so I sorted out a 
workaround to get the required date information without using ODBC, 
and forgot the problem. Now, we also need to read the time fields, 
and no workaround seems possible.
We can read the same HanDBase date and time fields correctly on all 
ODBC programs that we tested, so it seems a Revolution problem. 
HanDBase can show date fields, time fields, and timestamp fields 
(date + time); all three kinds of fields are coded in the database as 
a timestamp; HanDBase technical support confirmed me that the ODBC 
format for date and time field isd the standard ODBC timestamp 
format, as from Microsoft ODBC API specifications 
(http://msdn2.microsoft.com/en-us/library/ms190234.aspx).

3) What I know.
- If I read the data type using revDatabaseColumnTypes() Revolution 
reports all these fields as "TIMESTAMP"; I understand that Revolution 
also recognizes these other data types: "DATE,TIME,DATETIME", but it 
seems to read the data type of all our date and time fields as 
"TIMESTAMP", and this make sense because it is in accordance to the 
HanDBase ODBC format
- In my scripts I use the revDatabaseColumnNamed() function to access 
the fields in the databases, but the problem exists also if I use the 
revDataFromQuery() function
- I suppose the revDatabaseColumnNamed() function to be coded in the 
revdb.dll, because I found no trace of it in the "revdatabase" script

4) Possible solution
I can use vbscript to access my HanDBase databases through ODBC, save 
the data as ASCII files, the read the ASCII files in Revolution and 
follow with the data processing. I made a rough try and it works, but 
it doesn't make much sense. Moreover, I'm not very happy with this 
solution, because I'm already under pressure from my colleagues to 
abandon Revolution, and move our whole data management system to 
something else. But this will mean to port a huge amount of scripts, 
and I'm a biologist, not a programmer, so I would prefer to sort out 
a solution in Revolution.

I will much appreciate your help, thank you in advance. Sorry for the 
long email.

Kind regards
Filippo Galimberti


Filippo Galimberti, PhD
Elephant Seal Research Group
fil_esrg at eleseal.it
www.eleseal.it




More information about the use-livecode mailing list