| 1281 | // |
| 1282 | |
| 1283 | static void gen_cursor_open(const act* action, const gpre_req* request) |
| 1284 | { |
| 1285 | TEXT s[MAX_CURSOR_SIZE]; |
| 1286 | |
| 1287 | if (action->act_type != ACT_open) |
| 1288 | { |
| 1289 | if (gpreGlob.sw_auto) |
| 1290 | printa(COLUMN, "IF (isc_%ds .EQ. 0 .AND. %s .NE. 0) THEN", |
| 1291 | request->req_ident, |
| 1292 | request->req_database->dbb_name->sym_string); |
| 1293 | else |
| 1294 | printa(COLUMN, "IF (isc_%ds .EQ. 0) THEN", request->req_ident); |
| 1295 | } |
| 1296 | else |
| 1297 | { |
| 1298 | if (gpreGlob.sw_auto) |
| 1299 | printa(COLUMN, "IF (isc_%ds .EQ. 0 .AND. %s .NE. 0 .AND. %s .NE. 0) THEN", |
| 1300 | request->req_ident, request->req_handle, |
| 1301 | request->req_database->dbb_name->sym_string); |
| 1302 | else |
| 1303 | printa(COLUMN, "IF (isc_%ds .EQ. 0 .AND. %s .NE. 0) THEN", |
| 1304 | request->req_ident, request->req_handle); |
| 1305 | } |
| 1306 | |
| 1307 | printa(COLUMN, "CALL %s (%s, %s, isc_%ds)", |
| 1308 | ISC_DSQL_ALLOCATE, |
| 1309 | status_vector(), |
| 1310 | request->req_database->dbb_name->sym_string, request->req_ident); |
| 1311 | printa(COLUMN, "END IF"); |
| 1312 | |
| 1313 | if (gpreGlob.sw_auto) |
| 1314 | printa(COLUMN, "IF (isc_%ds .NE. 0 .AND. %s .NE. 0) THEN", |
| 1315 | request->req_ident, request_trans(action, request)); |
| 1316 | else |
| 1317 | printa(COLUMN, "IF (isc_%ds .NE. 0) THEN", request->req_ident); |
| 1318 | printa(COLUMN, "CALL %s (%s, isc_%ds, %s, %s0%s)", |
| 1319 | ISC_DSQL_SET_CURSOR, |
| 1320 | status_vector(), |
| 1321 | request->req_ident, |
| 1322 | make_name(s, ((open_cursor*) action->act_object)->opn_cursor), |
| 1323 | DSQL_I2CONST_1, DSQL_I2CONST_2); |
| 1324 | printa(COLUMN, "IF (isc_status(2) .EQ. 0) THEN"); |
| 1325 | printa(COLUMN, "CALL %s (%s, %s, isc_%ds, %s0%s, 0, %s-1%s, %s0%s, 0)", |
| 1326 | ISC_DSQL_EXECUTE, |
| 1327 | status_vector(), |
| 1328 | request_trans(action, request), |
| 1329 | request->req_ident, |
| 1330 | DSQL_I2CONST_1, DSQL_I2CONST_2, |
| 1331 | DSQL_I2CONST_1, DSQL_I2CONST_2, DSQL_I2CONST_1, DSQL_I2CONST_2); |
| 1332 | printa(COLUMN, "IF (isc_status(2) .EQ. 0) THEN"); |
| 1333 | } |
| 1334 | |
| 1335 | |
| 1336 | //____________________________________________________________ |
no test coverage detected