Contenu connexe
Similaire à Funct format sql_statement.c
Similaire à Funct format sql_statement.c (20)
Funct format sql_statement.c
- 1. funct_format_sql_statement.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "constant_definition.h"
#include "case_constant_definition.h"
#include "case_constant_sql_stmt_def.h"
#include "constant_oracle_versions.h"
extern vaciar_cadena();
extern pasar_amayus ();
extern stmtsqlncmp ();
char *formatear_sql_statement ( void *punt_cadena )
{
static char order_stmt [MAX_STMT_SIZE];
static char auxi_stmt [MAX_STMT_SIZE];
static char auxiliar [MAX_WORD_STMT];
int profu_parent =0;
int profu_comita =0;
int profu_comilla =0;
int contador_blanco =0;
int largo_cadena=0;
int posicion1=0;
int posicion2=0;
int posicion3=0;
int caracter=0;
largo_cadena = (int )strlen ((char *) punt_cadena);
vaciar_cadena (order_stmt, MAX_STMT_SIZE);
vaciar_cadena (auxi_stmt, MAX_STMT_SIZE);
posicion2=0;
/* ************ Quitando espacios en blanco ************* */
for (posicion1=0; posicion1 <= largo_cadena; posicion1++)
{
caracter = ((char *) punt_cadena )[posicion1];
if ( caracter == ASCII_SPACE )
if ( contador_blanco == 0 )
{
contador_blanco++;
auxi_stmt [posicion2]=caracter;
posicion2++;
}
if ( caracter != ASCII_SPACE)
{
contador_blanco=0;
auxi_stmt[posicion2]=caracter;
posicion2++;
}
}
auxi_stmt[posicion2]=ASCII_FIN_LINEA;
/* ************ ||||||||||||||||||||||||||| ************* */
largo_cadena=(int )strlen(auxi_stmt);
posicion2=0;
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
for (posicion1=0; posicion1 <= largo_cadena; posicion1++)
{
caracter = auxi_stmt [posicion1];
/* printf ("C [%c=%d] ",caracter,caracter); */
if ( caracter != ASCII_SPACE )
{
auxiliar[posicion3] = caracter;
Página 1
- 2. funct_format_sql_statement.c
/* order_stmt[posicion2] = caracter;
posicion2++;
order_stmt[posicion2] = ASCII_FIN_LINEA;
*/
posicion3++;
auxiliar[posicion3] = ASCII_FIN_LINEA;
}
else if (caracter == ASCII_SPACE )
{
if ( ( stmtsqlncmp (auxiliar,"select",6)==0 ) )
{
strcat (order_stmt," n");
strcat (order_stmt,auxiliar);
strcat (order_stmt," n");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
else if ( (stmtsqlncmp (auxiliar,"from",4)==0 ) )
{
strcat (order_stmt," n");
strcat (order_stmt,auxiliar);
strcat (order_stmt," n");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
else if ( (stmtsqlncmp (auxiliar,"where",5)==0 ) )
{
strcat (order_stmt," n");
strcat (order_stmt,auxiliar);
strcat (order_stmt," n");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
else if ( (stmtsqlncmp (auxiliar,"group",5)==0) )
{
strcat (order_stmt," n");
strcat (order_stmt,auxiliar);
strcat (order_stmt," n");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
else if ( (stmtsqlncmp (auxiliar,"order",5)==0) )
{
strcat (order_stmt," n");
strcat (order_stmt,auxiliar);
strcat (order_stmt," n");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
strcat (order_stmt,auxiliar);
strcat (order_stmt," ");
posicion3=0;
vaciar_cadena (auxiliar,MAX_WORD_STMT);
}
}
return (order_stmt);
}
Página 2