GRASS GIS 8 Programmer's Manual
8.2.2dev(2023)-3d2c704037
c_fetch.c
Go to the documentation of this file.
1
/*!
2
* \file db/dbmi_client/c_fetch.c
3
*
4
* \brief DBMI Library (client) - fetch data
5
*
6
* (C) 1999-2008 by the GRASS Development Team
7
*
8
* This program is free software under the GNU General Public
9
* License (>=v2). Read the file COPYING that comes with GRASS
10
* for details.
11
*
12
* \author Joel Jones (CERL/UIUC), Radim Blazek
13
*/
14
15
#include <
grass/dbmi.h
>
16
#include "
macros.h
"
17
18
/*!
19
\brief Fetch data from open cursor
20
21
\param cursor pointer to dbCursor
22
\param position cursor position
23
\param[out] more get more (0 for no data to be fetched)
24
25
\return DB_OK on success
26
\return DB_FAILED on failure
27
*/
28
int
db_fetch
(
dbCursor
* cursor,
int
position,
int
*more)
29
{
30
int
ret_code;
31
32
/* start the procedure call */
33
db__set_protocol_fds
(cursor->
driver
->
send
, cursor->
driver
->
recv
);
34
DB_START_PROCEDURE_CALL
(
DB_PROC_FETCH
);
35
36
/* send the argument(s) to the procedure */
37
DB_SEND_TOKEN
(&cursor->
token
);
38
DB_SEND_INT
(position);
39
40
/* get the return code for the procedure call */
41
DB_RECV_RETURN_CODE
(&ret_code);
42
43
if
(ret_code !=
DB_OK
)
44
return
ret_code;
/* ret_code SHOULD == DB_FAILED */
45
46
/* get the results */
47
DB_RECV_INT
(more);
48
if
(*more) {
49
DB_RECV_TABLE_DATA
(cursor->
table
);
50
}
51
return
DB_OK
;
52
}
DB_SEND_INT
#define DB_SEND_INT(x)
Definition:
macros.h:37
DB_RECV_INT
#define DB_RECV_INT(x)
Definition:
macros.h:39
_db_cursor
Definition:
dbmi.h:230
dbmi.h
macros.h
_db_cursor::driver
dbDriver * driver
Definition:
dbmi.h:233
db_fetch
int db_fetch(dbCursor *cursor, int position, int *more)
Fetch data from open cursor.
Definition:
c_fetch.c:28
DB_PROC_FETCH
#define DB_PROC_FETCH
Definition:
dbmi.h:39
DB_START_PROCEDURE_CALL
#define DB_START_PROCEDURE_CALL(x)
Definition:
macros.h:2
DB_RECV_RETURN_CODE
#define DB_RECV_RETURN_CODE(x)
Definition:
macros.h:4
_db_cursor::token
dbToken token
Definition:
dbmi.h:232
_db_driver::recv
FILE * recv
Definition:
dbmi.h:171
DB_SEND_TOKEN
#define DB_SEND_TOKEN(x)
Definition:
macros.h:97
DB_RECV_TABLE_DATA
#define DB_RECV_TABLE_DATA(x)
Definition:
macros.h:69
db__set_protocol_fds
void db__set_protocol_fds(FILE *, FILE *)
?
Definition:
db/dbmi_base/xdr.c:75
_db_driver::send
FILE * send
Definition:
dbmi.h:171
_db_cursor::table
dbTable * table
Definition:
dbmi.h:234
DB_OK
#define DB_OK
Definition:
dbmi.h:71
lib
db
dbmi_client
c_fetch.c
Generated on Tue Feb 14 2023 05:55:58 for GRASS GIS 8 Programmer's Manual by
1.8.13