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