File: driver.h

package info (click to toggle)
unixodbc 2.2.11-16
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 17,332 kB
  • ctags: 12,399
  • sloc: ansic: 116,624; cpp: 29,333; sh: 25,024; makefile: 3,002; lex: 241; yacc: 182; perl: 142; sed: 16; sql: 1
file content (118 lines) | stat: -rw-r--r-- 2,131 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/**
    Copyright (C) 1995, 1996 by Ke Jin <kejin@visigenic.com>
	Enhanced for unixODBC (1999) by Peter Harvey <pharvey@codebydesign.com>
	
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
**/
#ifndef _H_DRIVER
#define _H_DRIVER

#include "config.h"
#include "isql.h"
#include "isqlext.h"
#include "convert.h"

#include "yystmt.h"
#include "yyerr.h"
#include "yyenv.h"

#include "hstmt.h"
#include "herr.h"

typedef struct GSTMT {
	void*	hdbc;
	void*	hstmt;
	struct GSTMT*
		next;
} gstmt_t;

typedef struct DBC {
	void*	hcndes;
	void*	henv;
	gstmt_t*
		stmt;
	void*	herr;

	struct DBC*
		next;
} dbc_t;

typedef struct {
	void*	hdbc;
	void*	herr;
} env_t;


typedef struct {
	int	bind;
	short	type;
	unsigned long
		coldef;
	short	scale;
	char*	userbuf;
	long	userbufsize;
	long*	pdatalen;

	int	ctype;
	int	sqltype;
	fptr_t	cvt;	/* c to sql type convert function */

	/* for SQLPutData() on SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR */
	char*	putdtbuf;
	int	putdtlen;
	int	need;
} param_t;

typedef struct {
	short	ctype;
	char*	userbuf;
	long	userbufsize;
	long*	pdatalen;

	long	offset; 		/* getdata offset */
} column_t;

typedef struct {
	void*		herr;
	void*		hdbc;
	column_t*	pcol;		/* user bound columns */
	param_t*	ppar;		/* user bound parameters */
	int		ndelay; 	/* number of delay parameters */
	void*		yystmt; 	/* sql layer object handle */

	int		refetch;	/* need refetch */

	int		putipar;
} stmt_t;

#include "connect.h"

#include "nnsql.h"
#include "nntp.h"


char*	getkeyvalbydsn(
		char*	dsn,
		int	dsnlen,
		char*	keywd,
		char*	value,
		int	size );

char*	getkeyvalinstr(
		char*	cnstr,
		int	cnlen,
		char*	keywd,
		char*	value,
		int	size );

#endif