ODBC Driver Commands

Discuss the HanDBase for Windows Desktop program, conduits, and add-ons.

ODBC Driver Commands

Postby pboom » Tue Mar 02, 2010 12:09 pm

I am currently attempting to develop a mobile solution using Alpha5 version 9 and HandBase. These two products are similar that they both allow easy development of real database solutions. HandBase on the hand held device and Alpha5 on the desktop machine. I feel real compatibility with Alpha5 would allow for some very nice desktop companions to Handbase applications.

I have tried the various Sync Exchange options none have worked satisfactory. The HandBase ODBC Driver holds the most promise as Alpha5 could update the Handbase data directly using it's ODBC support. However Alpha5 needs to do a row count on any table it opens via ODBC. The HandBase ODBC driver as far as I can tell does not support the COUNT function/command. I've been able to verify that the rest of the Alpha5 access to HandBase functionality is there by altering the SQL used by Alpha5 to get the count and have it return a fixed number of records. This however is not a real solution as the number of records does change.

This leads to my questions.

Does the HandBase ODBC Driver have any command to determine a row count?
Does any documentation exist that list what commands the the HandBase ODBC driver does support?

Finally could DDH software add support for the COUNT function? This would make me very happy, and make HandBase and Alpha5 live together happily.

Thanks in advance

Paul Verboom
Capital Health http://www.cdha.nshealth.ca/
Nova Scotia
Posts: 2
Joined: Tue Mar 02, 2010 11:20 am

Re: ODBC Driver Commands

Postby dhaupert » Tue Mar 02, 2010 4:17 pm

Hi Paul,

Thanks for your reply and sorry for your troubles. We used to have a tutorial showing you how to set up Alpha 5 and Sync Exchange to allow syncing with HanDBase. After a few updates of Alpha5, this no longer worked. The main issue is that they don't have their own ODBC driver, and they use the DBF format, which is not really a very strict format, but more a guideline at this point as there are so many variances of it. So the driver that used to work no longer does for us, and nothing else we've tried works reliably.

Now going the other route, via the ODBC driver would work in theory, but you're right, I don't believe we support the count command they are calling. Here's a complete list of the ODBC Grammar our driver supports:

delete-statement-searched ::=
     DELETE [FROM] table-name [WHERE search-condition]
insert-statement ::=
     INSERT INTO table-name [( column-identifier [, column-identifier]...)]
     VALUES (insert-value[, insert-value]... )
select-statement ::=
     SELECT select-list
     FROM table-name
     [WHERE search-condition]
     UPDATE table-name
     SET column-identifier = expression
          [, column-identifier = expression]...
     [WHERE search-condition]
statement ::=delete-statement-searched
     | insert-statement
     | select-statement
     | update-statement-searched
select-list ::= * | select-sublist [, select-sublist]... 
select-sublist ::= expression
search-condition ::= boolean-term [OR search-condition]
boolean-term ::= boolean-factor [AND boolean-term]
boolean-factor ::= [NOT] boolean-primary
boolean-primary ::= comparison-predicate | ( search-condition )
comparison-predicate ::= expression comparison-operator expression | expression IS NULL
comparison-operator ::= < | > | <= | >= | = | <> | !=
expression ::= column-name | dynamic-parameter | literal
column-name ::= [table-name.]column-identifier
column-identifier ::= user-defined-name
dynamic-parameter ::= ?
order-by-clause ::=   ORDER BY sort-specification [, sort-specification]...
sort-specification ::= {column-number | column-name} [ASC | DESC]
insert-value ::=     dynamic-parameter  | literal 

literal ::= character-string-literal | date-time-literal
character-string-literal ::= ‘{character}…’
date-time-literal ::= `{character}…` (note the use of back quotes)

column-identifier ::= user-defined-name | “user-defined-name”
table-name ::= table-identifier | “table-identifier”
table-identifier ::= short-table-name | full-path-and-file-name

At this point I am not sure we can support the update in terms of programming resources as we're knee deep in a lot of simultaneous projects already. I would suggest trying to use Access as a go between if you have that ability.
Posts: 4113
Joined: Tue May 26, 2009 11:51 am

Return to HanDBase for Windows

Who is online

Users browsing this forum: No registered users and 1 guest