mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-26 10:03:03 +01:00
127 lines
2.5 KiB
C++
127 lines
2.5 KiB
C++
/*
|
|
* 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): ______________________________________.
|
|
*/
|
|
|
|
#ifndef DSQL_SQLDA_H
|
|
#define DSQL_SQLDA_H
|
|
|
|
#include "../jrd/gds_proto.h"
|
|
|
|
// SQLDA dialects
|
|
|
|
const USHORT DIALECT_sqlda = 0;
|
|
const USHORT DIALECT_xsqlda = 1;
|
|
|
|
struct SQLVAR
|
|
{
|
|
SSHORT sqltype;
|
|
SSHORT sqllen;
|
|
SCHAR* sqldata;
|
|
SSHORT* sqlind;
|
|
SSHORT sqlname_length;
|
|
SCHAR sqlname[30];
|
|
};
|
|
|
|
struct SQLDA
|
|
{
|
|
SCHAR sqldaid[8];
|
|
SLONG sqldabc;
|
|
SSHORT sqln;
|
|
SSHORT sqld;
|
|
SQLVAR sqlvar[1];
|
|
};
|
|
|
|
#define SQLDA_LENGTH(n) (sizeof (SQLDA) + (n - 1) * sizeof (SQLVAR))
|
|
|
|
// Structure to support conversion of SQLDA's to messages
|
|
|
|
// enum would be troblesome here
|
|
const USHORT DASUP_CLAUSE_select = 0;
|
|
const USHORT DASUP_CLAUSE_bind = 1;
|
|
|
|
struct sqlda_sup
|
|
{
|
|
struct dasup_clause
|
|
{
|
|
SCHAR* dasup_blr;
|
|
SCHAR* dasup_msg;
|
|
USHORT dasup_blr_length;
|
|
USHORT dasup_blr_buf_len;
|
|
USHORT dasup_msg_buf_len;
|
|
|
|
SCHAR* dasup_info_buf;
|
|
USHORT dasup_info_len;
|
|
} dasup_clauses[2];
|
|
|
|
USHORT dasup_dialect; // Dialect associated with statement
|
|
USHORT dasup_stmt_type; // Type of statement
|
|
|
|
public:
|
|
sqlda_sup()
|
|
{
|
|
init();
|
|
}
|
|
|
|
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);
|
|
}
|
|
};
|
|
|
|
#include "../dsql/sqlda_pub.h"
|
|
|
|
#endif // DSQL_SQLDA_H
|
|
|