sqlptest.c 979 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <grass/gis.h>
  4. #include <grass/dbmi.h>
  5. #include <grass/sqlp.h>
  6. int main(int argc, char **argv)
  7. {
  8. SQLPSTMT *st;
  9. char buf[5000], buf2[5000];
  10. dbString stmt;
  11. int len;
  12. st = sqpInitStmt();
  13. db_init_string(&stmt);
  14. while (fgets(buf, 5000, stdin)) {
  15. fprintf(stdout, "\nInput row: -->>%s<<--\n", buf);
  16. strcpy(buf2, buf);
  17. G_chop(buf2);
  18. len = strlen(buf2);
  19. if (buf2[len - 1] == ';') { /* end of statement */
  20. buf2[len - 1] = 0; /* truncate ';' */
  21. db_append_string(&stmt, buf2);
  22. st->stmt = db_get_string(&stmt);
  23. sqpInitParser(st);
  24. fprintf(stdout, "Input statement: -->>%s<<--\n", st->stmt);
  25. if (yyparse() != 0) {
  26. fprintf(stdout,
  27. "Error: statement was not parsed successfully.\n");
  28. sqpFreeStmt(st);
  29. return (1);
  30. }
  31. sqpPrintStmt(st);
  32. db_zero_string(&stmt);
  33. }
  34. else {
  35. db_append_string(&stmt, buf);
  36. }
  37. }
  38. sqpFreeStmt(st);
  39. exit(0);
  40. }