int main(int argc, char **argv) { dbString stmt; dbDriver *driver; dbHandle handle; int ret; FILE *fd; int error; error = 0; parse_command_line(argc, argv); if (strcmp(parms.input, "-")) { fd = fopen(parms.input, "r"); if (fd == NULL) { G_fatal_error(_("Unable to open file <%s> for reading.\n" "Details: %s"), parms.input, strerror(errno)); } } else { fd = stdin; } driver = db_start_driver(parms.driver); if (driver == NULL) { G_fatal_error(_("Unable to start driver <%s>"), parms.driver); } db_init_handle(&handle); db_set_handle(&handle, parms.database, parms.schema); if (db_open_database(driver, &handle) != DB_OK) G_fatal_error(_("Unable to open database <%s>"), parms.database); while (get_stmt(fd, &stmt)) { if (!stmt_is_empty(&stmt)) { G_debug(3, "sql: %s", db_get_string(&stmt)); ret = db_execute_immediate(driver, &stmt); if (ret != DB_OK) { if (parms.i) { /* ignore SQL errors */ G_warning(_("Error while executing: '%s'"), db_get_string(&stmt)); error++; } else G_fatal_error(_("Error while executing: '%s'"), db_get_string(&stmt)); } } } db_close_database(driver); db_shutdown_driver(driver); exit(error ? EXIT_FAILURE : EXIT_SUCCESS); }
int main(int argc, char **argv) { dbString stmt; dbDriver *driver; dbHandle handle; int stat; FILE *fd; parse_command_line(argc, argv); if (parms.table) { if (!db_table_exists(parms.driver, parms.database, parms.table)) { G_warning(_("Table <%s> not found in database <%s> using driver <%s>"), parms.table, parms.database, parms.driver); exit(EXIT_FAILURE); } } /* read from file or stdin ? */ if (parms.input && strcmp(parms.input, "-") != 0) { fd = fopen(parms.input, "r"); if (fd == NULL) { G_fatal_error(_("Unable to open file <%s>: %s"), parms.input, strerror(errno)); } } else fd = stdin; /* open DB connection */ db_init_string(&stmt); driver = db_start_driver(parms.driver); if (driver == NULL) { G_fatal_error(_("Unable to start driver <%s>"), parms.driver); } db_init_handle(&handle); db_set_handle(&handle, parms.database, NULL); if (db_open_database(driver, &handle) != DB_OK) G_fatal_error(_("Unable to open database <%s>"), parms.database); db_set_error_handler_driver(driver); /* check for sql, table, and input */ if (parms.sql) { /* parms.sql */ db_set_string(&stmt, parms.sql); stat = sel(driver, &stmt); } else if (parms.table) { /* parms.table */ db_set_string(&stmt, "SELECT * FROM "); db_append_string(&stmt, parms.table); stat = sel(driver, &stmt); } else { /* -> parms.input */ stat = DB_OK; while (stat == DB_OK && get_stmt(fd, &stmt)) { if (!stmt_is_empty(&stmt)) stat = sel(driver, &stmt); } } if (parms.test_only) G_verbose_message(_("Test %s."), stat ? _("failed") : _("succeeded")); db_close_database(driver); db_shutdown_driver(driver); exit(stat == DB_OK ? EXIT_SUCCESS : EXIT_FAILURE); }