1/*
2 *  hstmt.h
3 *
4 *  $Id: hstmt.h 2613 1999-06-01 15:32:12Z VZ $
5 *
6 *  Query statement object management functions
7 *
8 *  The iODBC driver manager.
9 *
10 *  Copyright (C) 1995 by Ke Jin <kejin@empress.com>
11 *
12 *  This library is free software; you can redistribute it and/or
13 *  modify it under the terms of the GNU Library General Public
14 *  License as published by the Free Software Foundation; either
15 *  version 2 of the License, or (at your option) any later version.
16 *
17 *  This library is distributed in the hope that it will be useful,
18 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
19 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 *  Library General Public License for more details.
21 *
22 *  You should have received a copy of the GNU Library General Public
23 *  License along with this library; if not, write to the Free
24 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */
26#ifndef	_HSTMT_H
27#define	_HSTMT_H
28
29#include	"config.h"
30
31#include	"isql.h"
32#include	"isqlext.h"
33
34typedef struct STMT
35  {
36    int type;			/* must be 1st field */
37
38    struct STMT *next;
39
40    HERR herr;
41    HDBC hdbc;			/* back point to connection object */
42    HSTMT dhstmt;		/* driver's stmt handle */
43
44    int state;
45    int cursor_state;
46    int prep_state;
47    int asyn_on;		/* async executing which odbc call */
48    int need_on;		/* which call return SQL_NEED_DATA */
49  }
50STMT_t;
51
52enum
53  {
54    en_stmt_allocated = 0,
55    en_stmt_prepared,
56    en_stmt_executed,
57    en_stmt_cursoropen,
58    en_stmt_fetched,
59    en_stmt_xfetched,
60    en_stmt_needdata,		/* not call SQLParamData() yet */
61    en_stmt_mustput,		/* not call SQLPutData() yet */
62    en_stmt_canput		/* SQLPutData() called */
63  };				/* for statement handle state */
64
65enum
66  {
67    en_stmt_cursor_no = 0,
68    en_stmt_cursor_named,
69    en_stmt_cursor_opened,
70    en_stmt_cursor_fetched,
71    en_stmt_cursor_xfetched
72  };				/* for statement cursor state */
73
74extern RETCODE _iodbcdm_dropstmt ();
75#endif
76