Lyris User's Guide
[previous] [next] [contents]
Technical information about the ODBC Driver
Table of Contents
Introduction
Lyris Email Commands
Web Interface for Users
Server Administrator
Site Administrator
List Administrator
Other Topics
Add-On Packages
NT Authentication Option
Lyris ODBC Driver
Lyris ODBC Introduction
Installing the Lyris ODBC driver
Configuring the Lyris ODBC Driver
Testing the Lyris ODBC Driver
Technical information about the ODBC Driver
Installing and Upgrading
Appendix
Frequently Asked Questions

Technical information about the ODBC Driver

The following technical information is available for the driver:

Field Mappings:

The supported SQL data types map to the underlying data types as follows:

SQL_CHAR - Character
SQL_LONGVARCHAR - Memo
SQL_DECIMAL - Numeric, Float
SQL_BIT - Logical
SQL_DATE - Date

Technical Limitations:

- Only ODBC Minimum+ Level SQL is supported. See below for a complete listing of supported SQL grammar.

- Only SQL_CHAR, SQL_LONGVARCHAR, SQL_DECIMAL, SQL_BIT, and SQL_DATE are supported.

- Column and table names are not case-sensitive, string data comparisons are case sensitive.

- Transactions are not currently supported.

- Driver is for Windows 95 or Windows NT only. NT 3.51 and NT 4 are supported.

- Qualifiers and owners are not allowed on databases, tables, etc.

SQL Specification

The following is an exact description of the SQL commands supported by the Lyris ODBC Driver.

statement ::= CREATE create | DROP drop | SELECT select orderby
| INSERT insert | DELETE delete | UPDATE update
| passthroughSQL

passthroughSQL ::= any statement supported by the backend

create ::= TABLE tablename ( createcols )
| INDEX indexname ON tablename ( indexcolumns )

indexcolumns ::= indexcolumn | indexcolumn , indexcolumns

indexcolumn ::= columnname asc

createcols ::= createcol , createcols | createcol

createcol ::= columnname datatype | columnname datatype ( integer )
| columnname datatype ( integer , integer )

drop ::= TABLE tablename | INDEX indexname

select ::= selectcols FROM tablelist where groupby having

delete ::= FROM tablename where

insert ::= INTO tablename insertvals

update ::= tablename SET setlist where

setlist ::= set | setlist , set

set ::= columnname = NULL | columnname = expression

insertvals ::= ( columnlist ) VALUES ( valuelist )
| VALUES ( valuelist )
| ( columnlist ) VALUES ( SELECT select )
| VALUES ( SELECT select )

columnlist ::= columnname , columnlist | columnname

valuelist ::= NULL , valuelist | expression , valuelist
| expression | NULL

selectcols ::= selectallcols * | selectallcols selectlist

selectallcols ::= | ALL | DISTINCT

selectlist ::= selectlistitem , selectlist | selectlistitem

selectlistitem ::= expression | expression aliasname
| expression AS aliasname

where ::= | WHERE boolean

having ::= | HAVING boolean

boolean ::= and | and OR boolean

and ::= not | not AND and

not ::= comparison | NOT comparison

comparison ::= ( boolean ) | colref IS NULL | colref IS NOT NULL
| expression LIKE pattern | expression NOT LIKE pattern
| expression IN ( valuelist )
| expression NOT IN ( valuelist )
| expression op expression | EXISTS ( SELECT select )
| expression op selectop ( SELECT select )
| expression IN ( SELECT select )
| expression NOT IN ( SELECT select )

selectop ::= | ALL | ANY

op ::= > | >= | < | <= | = | <>

pattern ::= string | ? | USER

expression ::= expression + times | expression - times | times

times ::= times * neg | times / neg | neg

neg ::= term | + term | - term

term ::= ( expression ) | colref | simpleterm | aggterm | scalar

scalar ::= scalarescape | scalarshorthand

scalarescape ::= --*(VENDOR(MICROSOFT),PRODUCT(ODBC) FN fn )*--

scalarshorthand ::= { FN fn }

fn ::= functionname ( valuelist ) | functionname ( )

aggterm ::= COUNT ( * ) | AVG ( expression ) | MAX ( expression )
| MIN ( expression ) | SUM ( expression )

simpleterm ::= string | realnumber | ? | USER | date | time | timestamp

groupby ::= | GROUP BY groupbyterms

groupbyterms ::= colref | colref , groupbyterms

orderby ::= | ORDER BY orderbyterms

orderbyterms ::= orderbyterm | orderbyterm , orderbyterms

orderbyterm ::= colref asc | integer asc

asc ::= | ASC | DESC

colref ::= aliasname . columnname | columnname

tablelist ::= tablelistitem , tablelist | tablelistitem

tablelistitem ::= tableref | outerjoin

outerjoin ::= ojescape | ojshorthand

ojescape ::= --*(VENDOR(MICROSOFT),PRODUCT(ODBC) OJ oj )*--

ojshorthand ::= { OJ oj }

oj ::= tableref LEFT OUTER JOIN tableref ON boolean
| tableref LEFT OUTER JOIN oj ON boolean

tableref ::= tablename | tablename aliasname

indexname ::= identifier

functionname ::= identifier

tablename ::= identifier

datatype ::= identifier

columnname ::= identifier

aliasname ::= identifier

identifier ::= an identifier
(identifiers containing spaces must be enclosed in double quotes)

string ::= a string (enclosed in single quotes)

realnumber ::= a non-negative real number (including E notation)

integer ::= a non-negative integer

date ::= dateescape | dateshorthand

dateescape ::= --*(VENDOR(MICROSOFT),PRODUCT(ODBC) d dateval )*--

dateshorthand ::= { d dateval }

dateval ::= a date in yyyy-mm-dd format in single quotes
(for example, '1996-02-05')

time ::= timeescape | timeshorthand

timeescape ::= --*(VENDOR(MICROSOFT),PRODUCT(ODBC) t timeval )*--

timeshorthand ::= { t timeval }

time ::= a time in hh:mm:ss format in single quotes
(for example, '10:19:48')

timestamp ::= timestampescape | timestampshorthand

timestampescape ::= --*(VENDOR(MICROSOFT),
PRODUCT(ODBC) ts timestampval )*--

timestampshorthand ::= { ts timestampval }

timestampval ::= a timestamp in yyyy-mm-dd hh:mm:ss[.ffffff] format in
single quotes (for example, '1996-02-05 10:19:48.529')

Other pages which link to this page:
  • Lyris ODBC Driver
  • Page 442 of 556