8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-27 07:23:04 +01:00
firebird-mirror/src/dsql/sqlda_pub.h

102 lines
3.7 KiB
C

/*
* PROGRAM: C preprocessor
* MODULE: sqlda_pub.h
* DESCRIPTION: Public DSQL definitions (included in ibase.h)
*
* The contents of this file are subject to the Interbase Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy
* of the License at http://www.Inprise.com/IPL.html
*
* Software distributed under the License is distributed on an
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
* or implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code was created by Inprise Corporation
* and its predecessors. Portions created by Inprise Corporation are
* Copyright (C) Inprise Corporation.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
#ifndef DSQL_SQLDA_PUB_H
#define DSQL_SQLDA_PUB_H
/* Definitions for DSQL free_statement routine */
#define DSQL_close 1
#define DSQL_drop 2
#define DSQL_unprepare 4
/* Declare the extended SQLDA */
typedef struct
{
ISC_SHORT sqltype; /* datatype of field */
ISC_SHORT sqlscale; /* scale factor */
ISC_SHORT sqlsubtype; /* datatype subtype - currently BLOBs only */
ISC_SHORT sqllen; /* length of data area */
ISC_SCHAR* sqldata; /* address of data */
ISC_SHORT* sqlind; /* address of indicator variable */
ISC_SHORT sqlname_length; /* length of sqlname field */
ISC_SCHAR sqlname[32]; /* name of field, name length + space for NULL */
ISC_SHORT relname_length; /* length of relation name */
ISC_SCHAR relname[32]; /* field's relation name + space for NULL */
ISC_SHORT ownname_length; /* length of owner name */
ISC_SCHAR ownname[32]; /* relation's owner name + space for NULL */
ISC_SHORT aliasname_length; /* length of alias name */
ISC_SCHAR aliasname[32]; /* relation's alias name + space for NULL */
} XSQLVAR;
#define SQLDA_VERSION1 1
typedef struct
{
ISC_SHORT version; /* version of this XSQLDA */
ISC_SCHAR sqldaid[8]; /* XSQLDA name field */
ISC_LONG sqldabc; /* length in bytes of SQLDA */
ISC_SHORT sqln; /* number of fields allocated */
ISC_SHORT sqld; /* actual number of fields */
XSQLVAR sqlvar[1]; /* first field address */
} XSQLDA;
#define XSQLDA_LENGTH(n) (sizeof (XSQLDA) + (n - 1) * sizeof (XSQLVAR))
#define SQL_TEXT 452
#define SQL_VARYING 448
#define SQL_SHORT 500
#define SQL_LONG 496
#define SQL_FLOAT 482
#define SQL_DOUBLE 480
#define SQL_D_FLOAT 530
#define SQL_TIMESTAMP 510
#define SQL_BLOB 520
#define SQL_ARRAY 540
#define SQL_QUAD 550
#define SQL_TYPE_TIME 560
#define SQL_TYPE_DATE 570
#define SQL_INT64 580
/* Historical alias for pre v6 code */
#define SQL_DATE SQL_TIMESTAMP
/***************************/
/* SQL Dialects */
/***************************/
#define SQL_DIALECT_V5 1 /* meaning is same as DIALECT_xsqlda */
#define SQL_DIALECT_V6_TRANSITION 2 /* flagging anything that is delimited
by double quotes as an error and
flagging keyword DATE as an error */
#define SQL_DIALECT_V6 3 /* supports SQL delimited identifier,
SQLDATE/DATE, TIME, TIMESTAMP,
CURRENT_DATE, CURRENT_TIME,
CURRENT_TIMESTAMP, and 64-bit exact
numeric type */
#define SQL_DIALECT_CURRENT SQL_DIALECT_V6 /* latest IB DIALECT */
#endif /* DSQL_SQLDA_PUB_H */