📄 nfxsel.ec
字号:
/*****************************************************************************//* Database Public Function For Informix *//* ------------------------------------------------------------------------- *//* Author : Shih Ho *//* Date : March 27, 1998 *//*****************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <memory.h>$include sqlca.h;$include "dblib.h";$include "nfxprv.h";$define SQLDESC "sqldesc";/*===========================================================================*//* Public Funciton - DBselect *//*---------------------------------------------------------------------------*/int DBselect( Command, Buffer, SaveBuf )EXEC SQL BEGIN DECLARE SECTION;char *Command;EXEC SQL END DECLARE SECTION;char *Buffer;int ( *SaveBuf )();{ int r = -1; EXEC SQL BEGIN DECLARE SECTION; int c; int n=0; char ExeName[8]; char CsrName[8]; char DatName[8]; EXEC SQL END DECLARE SECTION; if( Command != NULL ){ strcpy( ExeName, "exe_cmd" ); if( ( c = GetFieldCount( Command, ExeName ) ) > 0 ){ strcpy( CsrName, "csr_cmd" ); EXEC SQL DECLARE :CsrName CURSOR FOR :ExeName; if( ( r = sqlca.sqlcode ) == SQLOK ){ strcpy( DatName, "dat_cmd" ); EXEC SQL ALLOCATE DESCRIPTOR :DatName WITH MAX :c; if( ( r = sqlca.sqlcode ) == SQLOK ){ EXEC SQL OPEN :CsrName; if( ( r = sqlca.sqlcode ) == SQLOK ){ EXEC SQL DESCRIBE :ExeName USING SQL DESCRIPTOR :DatName; if( ( r = sqlca.sqlcode ) == SQLOK ){ if( Buffer == NULL ){ EXEC SQL FETCH :CsrName USING SQL DESCRIPTOR :DatName; r = sqlca.sqlcode; } else{ while( 1 ){ EXEC SQL FETCH :CsrName USING SQL DESCRIPTOR :DatName; if( sqlca.sqlcode == SQLNOTFOUND ){ if( !n ) r = -4; break; } n++; if( ( r = sqlca.sqlcode ) != SQLOK ) break; if( Buffer == NULL ){ if( n ) r = 0; break; } if( ( r = GetDataBuffer( DatName, Buffer ) ) != 0 ){ r = -5; break; } if( SaveBuf == NULL ) break; if( ( *SaveBuf )( Buffer ) != 0 ){ r = -3; break; } } } } EXEC SQL CLOSE :CsrName; } EXEC SQL DEALLOCATE DESCRIPTOR :DatName; } EXEC SQL FREE :CsrName; } EXEC SQL FREE :ExeName; } } return( r );}/*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -