⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nfxtbl.ec

📁 封装了数据库的基本操作
💻 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";/*===========================================================================*//* Local Funciton - ExecData                                                 *//*---------------------------------------------------------------------------*/static int ExecData( Table, Buffer, Part1, Part2, Num )char *Table;char *Buffer;char *Part1;char *Part2;int  *Num;{  int r = -2;  EXEC SQL BEGIN DECLARE SECTION;  int c;  char *CntCmd, *ExeCmd;  char CntName[8];  char DatName[8];  char ExeName[8];  EXEC SQL END DECLARE SECTION;  if( ( CntCmd = ( char * ) malloc( 180 ) ) != NULL ){    sprintf( CntCmd, "SELECT * FROM %s", Table );    strcpy( CntName, "cnt_cmd" );    if( ( c = GetFieldCount( CntCmd, CntName ) ) > 0 ){      strcpy( DatName, "dat_cmd" );      EXEC SQL ALLOCATE DESCRIPTOR :DatName WITH MAX :c;      if( ( r = sqlca.sqlcode ) == SQLOK ){        EXEC SQL DESCRIBE :CntName USING SQL DESCRIPTOR :DatName;        if( ( r = sqlca.sqlcode ) == SQLOK ){          if( ( ExeCmd = ( char * ) malloc( 180 ) ) == NULL )            r = -2;          else{            sprintf( ExeCmd, "%s%*s%s", Part1, 2 * c - 1, "", Part2 );            SetFieldList( ExeCmd + strlen( Part1 ), c );            strcpy( ExeName, "exe_cmd" );            EXEC SQL PREPARE :ExeName FROM :ExeCmd;            if( ( r = sqlca.sqlcode ) == SQLOK ){              if( ( r = PutDataBuffer( DatName, Buffer ) ) == 0 ){                EXEC SQL EXECUTE :ExeName USING SQL DESCRIPTOR :DatName;                r = sqlca.sqlcode;                *Num = sqlca.sqlerrd[2];              }              EXEC SQL FREE :ExeName;            }            free( ExeCmd );          }        }        EXEC SQL DEALLOCATE DESCRIPTOR :DatName;      }      EXEC SQL FREE :CntName;    }    free( CntCmd );  }  return( r );}/*===========================================================================*//* Public Funciton - DBTinsert                                               *//*---------------------------------------------------------------------------*/int DBTinsert( Table, Buffer )char *Table;char *Buffer;{  int n, r = -1;  char *Cmd;  if( Table != NULL && Buffer != NULL ){    if( ( Cmd = ( char * ) malloc( 180 ) ) == NULL )      r = -2;    else{      sprintf( Cmd, "INSERT INTO %s VALUES (", Table );      r = ExecData( Table, Buffer, Cmd, ")", &n );      free( Cmd );    }  }  return( r );}/*===========================================================================*//* Public Funciton - DBTdelete                                               *//*---------------------------------------------------------------------------*/int DBTdelete( Table, Condition )char *Table;char *Condition;{  int r = -1;  int s, l;  char *Cmd;  if( Table != NULL ){    s = strlen( Table ) + 16;    if( Condition == NULL )      l = 0;    else      l = strlen( Condition ) + 7;    if( ( Cmd = ( char * ) malloc( 180 ) ) == NULL )      r = -2;    else{      if( l == 0 )        sprintf( Cmd, "DELETE FROM %s", Table );      else        sprintf( Cmd, "DELETE FROM %s WHERE %s", Table, Condition );      r = DBexec( Cmd, 0 );      if( !r && !sqlca.sqlerrd[2] )        r = 100;      free( Cmd );    }  }  return( r );}/*===========================================================================*//* Public Funciton - DBTupdate                                               *//*---------------------------------------------------------------------------*/int DBTupdate( Table, Buffer, Condition )char *Table;char *Buffer;char *Condition;{  int r = -1;  int l, n;  char *Cmd1, *Cmd2;  if( Table != NULL && Buffer != NULL ){    r = -2;    if( Condition == NULL )      l = 5;    else      l = strlen( Condition ) + 12;    if( ( Cmd1 = ( char * ) malloc( 180 ) ) != NULL ){      if( ( Cmd2 = ( char * ) malloc( 180 ) ) != NULL ){        sprintf( Cmd1, "UPDATE %s SET *=(", Table );        if( l == 5 )          sprintf( Cmd2, ")" );        else          sprintf( Cmd2, ") WHERE %s", Condition );        r = ExecData( Table, Buffer, Cmd1, Cmd2, &n );        if ( !r && !n )          r = 100;        free( Cmd2 );      }      free( Cmd1 );    }  }  return( r );}/*****************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -