2001-05-23 15:26:42 +02:00
|
|
|
/*
|
|
|
|
* PROGRAM: C preprocessor
|
|
|
|
* MODULE: sqlda.h
|
|
|
|
* DESCRIPTION: DSQL definitions for non-DSQL modules
|
|
|
|
*
|
|
|
|
* 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): ______________________________________.
|
|
|
|
*/
|
|
|
|
|
2003-09-26 13:02:12 +02:00
|
|
|
#ifndef DSQL_SQLDA_H
|
|
|
|
#define DSQL_SQLDA_H
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2011-06-02 10:42:50 +02:00
|
|
|
#include "../jrd/gds_proto.h"
|
|
|
|
|
2008-12-05 01:56:15 +01:00
|
|
|
// SQLDA dialects
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2004-05-18 18:32:07 +02:00
|
|
|
const USHORT DIALECT_sqlda = 0;
|
|
|
|
const USHORT DIALECT_xsqlda = 1;
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2004-05-24 19:22:35 +02:00
|
|
|
struct SQLVAR
|
2001-05-23 15:26:42 +02:00
|
|
|
{
|
|
|
|
SSHORT sqltype;
|
|
|
|
SSHORT sqllen;
|
|
|
|
SCHAR* sqldata;
|
|
|
|
SSHORT* sqlind;
|
|
|
|
SSHORT sqlname_length;
|
|
|
|
SCHAR sqlname[30];
|
2004-05-24 19:22:35 +02:00
|
|
|
};
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2004-05-24 19:22:35 +02:00
|
|
|
struct SQLDA
|
2001-05-23 15:26:42 +02:00
|
|
|
{
|
|
|
|
SCHAR sqldaid[8];
|
|
|
|
SLONG sqldabc;
|
|
|
|
SSHORT sqln;
|
|
|
|
SSHORT sqld;
|
|
|
|
SQLVAR sqlvar[1];
|
2004-05-24 19:22:35 +02:00
|
|
|
};
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2004-12-08 06:58:41 +01:00
|
|
|
#define SQLDA_LENGTH(n) (sizeof (SQLDA) + (n - 1) * sizeof (SQLVAR))
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2008-12-05 01:56:15 +01:00
|
|
|
// Structure to support conversion of SQLDA's to messages
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2011-06-02 10:42:50 +02:00
|
|
|
// enum would be troblesome here
|
|
|
|
const USHORT DASUP_CLAUSE_select = 0;
|
|
|
|
const USHORT DASUP_CLAUSE_bind = 1;
|
|
|
|
|
2004-02-02 12:02:12 +01:00
|
|
|
struct sqlda_sup
|
2001-05-23 15:26:42 +02:00
|
|
|
{
|
|
|
|
struct dasup_clause
|
|
|
|
{
|
|
|
|
SCHAR* dasup_blr;
|
|
|
|
SCHAR* dasup_msg;
|
|
|
|
USHORT dasup_blr_length;
|
|
|
|
USHORT dasup_blr_buf_len;
|
|
|
|
USHORT dasup_msg_buf_len;
|
2006-05-02 00:23:31 +02:00
|
|
|
|
|
|
|
SCHAR* dasup_info_buf;
|
|
|
|
USHORT dasup_info_len;
|
2001-05-23 15:26:42 +02:00
|
|
|
} dasup_clauses[2];
|
|
|
|
|
2008-12-05 01:56:15 +01:00
|
|
|
USHORT dasup_dialect; // Dialect associated with statement
|
|
|
|
USHORT dasup_stmt_type; // Type of statement
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2011-06-02 10:42:50 +02:00
|
|
|
public:
|
|
|
|
sqlda_sup()
|
|
|
|
{
|
|
|
|
init();
|
|
|
|
}
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2011-06-02 10:42:50 +02:00
|
|
|
void reset()
|
|
|
|
{
|
|
|
|
release();
|
|
|
|
init();
|
|
|
|
}
|
|
|
|
|
|
|
|
~sqlda_sup()
|
|
|
|
{
|
|
|
|
release();
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
void freeIfSet(SCHAR** pMem)
|
|
|
|
{
|
|
|
|
if (*pMem)
|
|
|
|
{
|
|
|
|
gds__free(*pMem);
|
|
|
|
*pMem = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void init()
|
|
|
|
{
|
|
|
|
memset(dasup_clauses, 0, sizeof(dasup_clauses));
|
|
|
|
dasup_dialect = 0;
|
|
|
|
dasup_stmt_type = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void release()
|
|
|
|
{
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_bind].dasup_blr);
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_select].dasup_blr);
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_bind].dasup_msg);
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_select].dasup_msg);
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_bind].dasup_info_buf);
|
|
|
|
freeIfSet(&dasup_clauses[DASUP_CLAUSE_select].dasup_info_buf);
|
|
|
|
}
|
|
|
|
};
|
2001-05-23 15:26:42 +02:00
|
|
|
|
2004-05-01 00:47:16 +02:00
|
|
|
#include "../dsql/sqlda_pub.h"
|
|
|
|
|
2003-09-26 13:02:12 +02:00
|
|
|
#endif // DSQL_SQLDA_H
|
2003-09-29 14:43:14 +02:00
|
|
|
|