File: sqlptest.c

package info (click to toggle)
grass 6.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 40,044 kB
  • ctags: 31,303
  • sloc: ansic: 321,125; tcl: 25,676; sh: 11,176; cpp: 10,098; makefile: 5,025; fortran: 1,846; yacc: 493; lex: 462; perl: 133; sed: 1
file content (56 lines) | stat: -rw-r--r-- 1,044 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdlib.h>
#include <string.h>
#include "gis.h"
#include "dbmi.h"
#include "sqlp.h"

int
main (int argc, char **argv) 
{
    SQLPSTMT *st;
    char buf[5000], buf2[5000];
    dbString stmt;
    int len;
    

    st = sqpInitStmt();
    
    db_init_string (&stmt);

    while ( fgets (buf, 5000, stdin) ) {
	fprintf ( stdout, "\nInput row: -->>%s<<--\n", buf );
	strcpy ( buf2, buf );
	G_chop (buf2);
	len = strlen (buf2);
	
	if ( buf2[ len - 1 ] == ';' ) {  /* end of statement */
	    buf2 [len - 1] = 0;          /* truncate ';' */
	    db_append_string (&stmt, buf2);
            
	    st->stmt = db_get_string(&stmt);
            sqpInitParser(st);

	    fprintf ( stdout, "Input statement: -->>%s<<--\n", st->stmt );

	    if ( yyparse() != 0 )
	    {
		fprintf (stdout, "Error: statement was not parsed successfully.\n");
		sqpFreeStmt(st); 
		return (1);
	    } 

	    sqpPrintStmt(st);

	    db_zero_string (&stmt);

        } else { 
	    db_append_string (&stmt, buf);
	}
    }

    
    sqpFreeStmt(st); 

    exit(0);
}