本文整理汇总了C++中db_get_string函数的典型用法代码示例。如果您正苦于以下问题:C++ db_get_string函数的具体用法?C++ db_get_string怎么用?C++ db_get_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了db_get_string函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: insert_value
/* insert values into the table (cat, val | dval) */
void insert_value(int cat, int val, double dval)
{
char buf[1000];
sprintf(buf, "insert into %s values (%d", Fi->table, cat);
db_set_string(&sql, buf);
if (data_type == CELL_TYPE)
sprintf(buf, ", %d", val);
else
sprintf(buf, ", %f", dval);
db_append_string(&sql, buf);
if (has_cats) {
char *lab;
lab = Rast_get_c_cat(&val, &RastCats); /*cats are loaded only for CELL type */
db_set_string(&label, lab);
db_double_quote_string(&label);
sprintf(buf, ", '%s'", db_get_string(&label));
db_append_string(&sql, buf);
}
db_append_string(&sql, ")");
G_debug(3, db_get_string(&sql));
if (db_execute_immediate(driver, &sql) != DB_OK)
G_fatal_error(_("Cannot insert new row: %s"), db_get_string(&sql));
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:34,代码来源:util.c
示例2: db__driver_describe_table
int db__driver_describe_table(dbString * table_name, dbTable ** table)
{
dbString sql;
PGresult *res;
db_init_string(&sql);
db_set_string(&sql, "select * from ");
db_append_string(&sql, db_get_string(table_name));
db_append_string(&sql, " where 1 = 0");
res = PQexec(pg_conn, db_get_string(&sql));
if (!res || PQresultStatus(res) != PGRES_TUPLES_OK) {
append_error(db_get_string(&sql));
append_error("\n");
append_error(PQerrorMessage(pg_conn));
report_error();
PQclear(res);
return DB_FAILED;
}
if (describe_table(res, table, NULL) == DB_FAILED) {
append_error("Cannot describe table\n");
report_error();
PQclear(res);
return DB_FAILED;
}
PQclear(res);
return DB_OK;
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:33,代码来源:describe.c
示例3: db_delete_table
/*!
\brief Delete table
\param drvname driver name
\param dbname database name
\param tblname table name
\return DB_OK on success
\return DB_FAILED on failure
*/
int db_delete_table(const char *drvname, const char *dbname, const char *tblname)
{
dbDriver *driver;
dbString sql;
G_debug(3, "db_delete_table(): driver = %s, db = %s, table = %s\n",
drvname, dbname, tblname);
/* Open driver and database */
driver = db_start_driver_open_database(drvname, dbname);
if (driver == NULL) {
G_warning(_("Unable open database <%s> by driver <%s>"), dbname,
drvname);
return DB_FAILED;
}
/* Delete table */
/* TODO test if the tables exist */
db_init_string(&sql);
db_set_string(&sql, "drop table ");
db_append_string(&sql, tblname);
G_debug(3, "%s", db_get_string(&sql));
if (db_execute_immediate(driver, &sql) != DB_OK) {
G_warning(_("Unable to drop table: '%s'"),
db_get_string(&sql));
db_close_database_shutdown_driver(driver);
return DB_FAILED;
}
db_close_database_shutdown_driver(driver);
return DB_OK;
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:44,代码来源:delete_tab.c
示例4: db__driver_open_select_cursor
int db__driver_open_select_cursor(dbString * sel, dbCursor * dbc, int mode)
{
cursor *c;
dbTable *table;
char *str;
/* allocate cursor */
c = alloc_cursor();
if (c == NULL)
return DB_FAILED;
db_set_cursor_mode(dbc, mode);
db_set_cursor_type_readonly(dbc);
/* \ must be escaped, see explanation in
* db_driver_execute_immediate() */
str = G_str_replace(db_get_string(sel), "\\", "\\\\");
G_debug(3, "Escaped SQL: %s", str);
if (mysql_query(connection, str) != 0) {
db_d_append_error("%s\n%s\n%s",
_("Unable to select data:"),
db_get_string(sel),
mysql_error(connection));
if (str)
G_free(str);
db_d_report_error();
return DB_FAILED;
}
if (str)
G_free(str);
c->res = mysql_store_result(connection);
if (c->res == NULL) {
db_d_append_error("%s\n%s",
db_get_string(sel),
mysql_error(connection));
db_d_report_error();
return DB_FAILED;
}
if (describe_table(c->res, &table, c) == DB_FAILED) {
db_d_append_error(_("Unable to describe table."));
db_d_report_error();
mysql_free_result(c->res);
return DB_FAILED;
}
c->nrows = (int)mysql_num_rows(c->res);
/* record table with dbCursor */
db_set_cursor_table(dbc, table);
/* set dbCursor's token for my cursor */
db_set_cursor_token(dbc, c->token);
return DB_OK;
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:59,代码来源:select.c
示例5: main
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);
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:58,代码来源:main.c
示例6: db__recv_string
/*
* db__recv_string (dbString *x)
* reads a string from transport
*
* returns DB_OK, DB_MEMORY_ERR, or DB_PROTOCOL_ERR
* x.s will be NULL if error
*
* NOTE: caller MUST initialize x by calling db_init_string()
*/
int db__recv_string(dbString * x)
{
int stat = DB_OK;
int len;
char *s;
if (!db__recv(&len, sizeof(len)))
stat = DB_PROTOCOL_ERR;
if (len <= 0) /* len will include the null byte */
stat = DB_PROTOCOL_ERR;
if (db_enlarge_string(x, len) != DB_OK)
stat = DB_PROTOCOL_ERR;
s = db_get_string(x);
if (!db__recv(s, len))
stat = DB_PROTOCOL_ERR;
if (stat == DB_PROTOCOL_ERR)
db_protocol_error();
return stat;
}
开发者ID:imincik,项目名称:pkg-grass,代码行数:34,代码来源:xdrstring.c
示例7: CPLDebug
bool OGRGRASSLayer::SetAttributes ( OGRFeature *poFeature, dbTable *table )
{
CPLDebug ( "GRASS", "OGRGRASSLayer::SetAttributes" );
for ( int i = 0; i < nFields; i++)
{
dbColumn *column = db_get_table_column ( table, i );
dbValue *value = db_get_column_value ( column );
int ctype = db_sqltype_to_Ctype ( db_get_column_sqltype(column) );
if ( !db_test_value_isnull(value) )
{
switch ( ctype ) {
case DB_C_TYPE_INT:
poFeature->SetField( i, db_get_value_int ( value ));
break;
case DB_C_TYPE_DOUBLE:
poFeature->SetField( i, db_get_value_double ( value ));
break;
case DB_C_TYPE_STRING:
poFeature->SetField( i, db_get_value_string ( value ));
break;
case DB_C_TYPE_DATETIME:
db_convert_column_value_to_string ( column, poDbString );
poFeature->SetField( i, db_get_string ( poDbString ));
break;
}
}
db_convert_column_value_to_string ( column, poDbString );
//CPLDebug ( "GRASS", "val = %s", db_get_string ( poDbString ));
}
return true;
}
开发者ID:469447793,项目名称:World-Wind-Java,代码行数:35,代码来源:ogrgrasslayer.cpp
示例8: write_class_info
static void
write_class_info (FILE * fp, DB_OBJECT * classobj)
{
DB_OBJLIST *objlist, *temp;
DB_OBJECT *obj;
DB_VALUE v;
fprintf (fp, MSGFMT, "open", "class");
fprintf (fp, MSGFMT, "classname", db_get_class_name (classobj));
obj = db_get_owner (classobj);
db_get (obj, "name", &v);
fprintf (fp, MSGFMT, "owner", db_get_string (&v));
objlist = db_get_superclasses (classobj);
for (temp = objlist; temp != NULL; temp = temp->next)
{
fprintf (fp, MSGFMT, "superclass", db_get_class_name (temp->op));
}
if (objlist != NULL)
db_objlist_free (objlist);
if (db_is_vclass (classobj))
fprintf (fp, MSGFMT, "virtual", "view");
else
fprintf (fp, MSGFMT, "virtual", "normal");
fprintf (fp, MSGFMT, "close", "class");
}
开发者ID:dong1,项目名称:testsize,代码行数:29,代码来源:cm_class_info_sa.c
示例9: db__driver_execute_immediate
int db__driver_execute_immediate(dbString * sql)
{
char *str;
/* In addition to standard escape character ' (apostrophe)
* MySQL supports also \ (backslash). Because this is not SQL
* standard, GRASS modules cannot escape all \ in the text
* because other drivers do not support this feature.
* For example, if a text contains string \' GRASS modules
* escape ' by another ' and the string passed to the driver is \''
* MySQL converts \' to ' but second ' remains not escaped and
* result is error.
* Because of this, all occurencies of \ in sql must be
* escaped by \ */
str = G_str_replace(db_get_string(sql), "\\", "\\\\");
G_debug(3, "Escaped SQL: %s", str);
if (mysql_query(connection, str) != 0) {
db_d_append_error("%s\n%s\n%s",
_("Unable to execute:"),
str,
mysql_error(connection));
db_d_report_error();
if (str)
G_free(str);
return DB_FAILED;
}
if (str)
G_free(str);
return DB_OK;
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:34,代码来源:execute.c
示例10: insert_new_record
int insert_new_record(dbDriver * driver, struct field_info *Fi,
dbString * sql, int cat, int comp)
{
char buf[2000];
sprintf(buf, "insert into %s values (%d, %d)", Fi->table, cat, comp);
db_set_string(sql, buf);
G_debug(3, "%s", db_get_string(sql));
if (db_execute_immediate(driver, sql) != DB_OK) {
db_close_database_shutdown_driver(driver);
G_fatal_error(_("Cannot insert new record: %s"), db_get_string(sql));
return 0;
};
return 1;
}
开发者ID:rkrug,项目名称:grass-ci,代码行数:16,代码来源:main.c
示例11: write_point
void write_point(struct Map_info *Out, double x, double y, double z,
int line_cat, double along, int table)
{
char buf[2000];
G_debug(3, "write_point()");
Vect_reset_line(PPoints);
Vect_reset_cats(PCats);
/* Write point */
Vect_append_point(PPoints, x, y, z);
Vect_cat_set(PCats, 1, line_cat);
Vect_cat_set(PCats, 2, point_cat);
Vect_write_line(Out, GV_POINT, PPoints, PCats);
/* Attributes */
if (!table) {
db_zero_string(&stmt);
sprintf(buf, "insert into %s values ( %d, %d, %.15g )", Fi->table,
point_cat, line_cat, along);
db_append_string(&stmt, buf);
if (db_execute_immediate(driver, &stmt) != DB_OK) {
G_warning(_("Unable to insert new record: '%s'"),
db_get_string(&stmt));
}
}
point_cat++;
}
开发者ID:imincik,项目名称:pkg-grass,代码行数:30,代码来源:main.c
示例12: db_error
/*!
\brief Get column number
\param index pointer to dbIndex
\param column_num column number
\return string buffer with name
*/
const char *db_get_index_column_name(dbIndex * index, int column_num)
{
if (column_num < 0 || column_num >= index->numColumns) {
db_error(_("db_get_index_column_name(): invalid column number"));
return ((const char *)NULL);
}
return db_get_string(&index->columnNames[column_num]);
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:16,代码来源:index.c
示例13: statement
/*!
\brief Open select cursor
\param sel select statement (given as dbString)
\param[out] dbc pointer to dbCursor
\param mode open mode
\return DB_OK on success
\return DB_FAILED on failure
*/
int db__driver_open_select_cursor(dbString * sel, dbCursor * dbc, int mode)
{
cursor *c;
dbTable *table;
init_error();
/* allocate cursor */
c = alloc_cursor();
if (c == NULL)
return DB_FAILED;
db_set_cursor_mode(dbc, mode);
db_set_cursor_type_readonly(dbc);
G_debug(3, "SQL: '%s'", db_get_string(sel));
c->hLayer = OGR_DS_ExecuteSQL(hDs, db_get_string(sel), NULL, NULL);
if (c->hLayer == NULL) {
append_error(_("Unable to select: \n"));
append_error(db_get_string(sel));
append_error("\n");
report_error();
return DB_FAILED;
}
if (describe_table(c->hLayer, &table, c) == DB_FAILED) {
append_error(_("Unable to describe table\n"));
report_error();
OGR_DS_ReleaseResultSet(hDs, c->hLayer);
return DB_FAILED;
}
/* record table with dbCursor */
db_set_cursor_table(dbc, table);
/* set dbCursor's token for my cursor */
db_set_cursor_token(dbc, c->token);
return DB_OK;
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:51,代码来源:select.c
示例14: point_save
int point_save(double xmm, double ymm, double zmm, double err)
/*
c saves point deviations
c
*/
{
int cat;
Vect_reset_line(Pnts);
Vect_reset_cats(Cats);
Vect_append_point(Pnts, xmm, ymm, zmm);
cat = count;
Vect_cat_set(Cats, 1, cat);
Vect_write_line(&Map, GV_POINT, Pnts, Cats);
db_zero_string(&sql);
sprintf(buf, "insert into %s values ( %d ", f->table, cat);
db_append_string(&sql, buf);
sprintf(buf, ", %f", err);
db_append_string(&sql, buf);
db_append_string(&sql, ")");
G_debug(3, "%s", db_get_string(&sql));
if (db_execute_immediate(driver, &sql) != DB_OK) {
db_close_database(driver);
db_shutdown_driver(driver);
G_fatal_error(_("Cannot insert new row: %s"), db_get_string(&sql));
}
count++;
return 1;
}
开发者ID:rashadkm,项目名称:grass_cmake,代码行数:38,代码来源:vector.c
示例15: mk_attribs
/* extract custom-namespaced attributes if any */
static int mk_attribs(int cat, struct field_info *Fi, dbDriver * Driver,
dbTable * Table, int attr_cols[], int attr_size,
int do_attr)
{
int i, more;
char buf[2000];
dbString dbstring;
dbColumn *Column;
dbCursor cursor;
dbValue *Value;
/* include cat in any case */
fprintf(fpsvg, "gg:cat=\"%d\" ", cat);
/* skip attribs if none */
if (do_attr == 0) {
return 1;
}
/* create SQL-string and query attribs */
db_init_string(&dbstring);
sprintf(buf, "SELECT * FROM %s WHERE %s = %d", Fi->table, Fi->key, cat);
db_set_string(&dbstring, buf);
if (db_open_select_cursor(Driver, &dbstring, &cursor, DB_SEQUENTIAL) !=
DB_OK) {
G_fatal_error(_("Cannot select attributes for cat=%d"), cat);
}
else {
if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK) {
G_fatal_error(_("Unable to fetch data from table"));
}
/* extract attribs and data if wanted */
Table = db_get_cursor_table(&cursor);
for (i = 0; i < attr_size; i++) {
Column = db_get_table_column(Table, attr_cols[i]);
Value = db_get_column_value(Column);
db_convert_column_value_to_string(Column, &dbstring);
strcpy(buf, db_get_column_name(Column));
fprintf(fpsvg, "gg:%s=\"", G_tolcase(buf));
print_escaped_for_xml(db_get_string(&dbstring));
fprintf(fpsvg, "\" ");
}
}
return 1;
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:51,代码来源:main.c
示例16: db__driver_create_table
int db__driver_create_table(dbTable * table)
{
dbString sql;
int ret;
G_debug(3, "db__driver_create_table()");
db_init_string(&sql);
db_table_to_sql(table, &sql);
G_debug(3, " SQL: %s", db_get_string(&sql));
ret = execute(db_get_string(&sql), NULL);
if (ret == DB_FAILED) {
db_d_append_error(_("Unable to create table"));
db_d_report_error();
return DB_FAILED;
}
return DB_OK;
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:23,代码来源:create_table.c
示例17: db__driver_create_table
int db__driver_create_table(dbTable * table)
{
dbString sql;
cursor *c;
char msg[OD_MSG];
char *emsg = NULL;
SQLRETURN ret;
SQLINTEGER err;
G_debug(3, "db__driver_create_table()");
db_init_string(&sql);
db_table_to_sql(table, &sql);
G_debug(3, " SQL: %s", db_get_string(&sql));
c = alloc_cursor();
if (c == NULL)
return DB_FAILED;
ret = SQLExecDirect(c->stmt, db_get_string(&sql), SQL_NTS);
if ((ret != SQL_SUCCESS) && (ret != SQL_SUCCESS_WITH_INFO)) {
SQLGetDiagRec(SQL_HANDLE_STMT, c->stmt, 1, NULL, &err, msg,
sizeof(msg), NULL);
G_asprintf(&emsg, "SQLExecDirect():\n%s\n%s (%d)\n",
db_get_string(&sql), msg, (int)err);
report_error(emsg);
G_free(emsg);
return DB_FAILED;
}
free_cursor(c);
return DB_OK;
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:37,代码来源:create_table.c
示例18: db__driver_describe_table
int db__driver_describe_table(dbString * table_name, dbTable ** table)
{
int i, nlayers;
OGRLayerH hLayer = NULL;
OGRFeatureDefnH hFeatureDefn;
/* Find data source */
nlayers = OGR_DS_GetLayerCount(hDs);
for (i = 0; i < nlayers; i++) {
hLayer = OGR_DS_GetLayer(hDs, i);
hFeatureDefn = OGR_L_GetLayerDefn(hLayer);
if (G_strcasecmp
((char *)OGR_FD_GetName(hFeatureDefn),
db_get_string(table_name)) == 0) {
break;
}
hLayer = NULL;
}
if (hLayer == NULL) {
append_error("Table '%s' does not exist\n",
db_get_string(table_name));
report_error();
return DB_FAILED;
}
G_debug(3, "->>");
if (describe_table(hLayer, table, NULL) == DB_FAILED) {
append_error("Cannot describe table\n");
report_error();
return DB_FAILED;
}
return DB_OK;
}
开发者ID:imincik,项目名称:pkg-grass,代码行数:36,代码来源:describe.c
示例19: create_table
static void create_table(struct Map_info *flowline_vec,
struct field_info **f_info, dbDriver ** driver,
int write_scalar, int use_sampled_map)
{
dbString sql;
char buf[200];
dbDriver *drvr;
struct field_info *fi;
db_init_string(&sql);
fi = Vect_default_field_info(flowline_vec, 1, NULL, GV_1TABLE);
*f_info = fi;
Vect_map_add_dblink(flowline_vec, 1, NULL, fi->table, GV_KEY_COLUMN,
fi->database, fi->driver);
drvr = db_start_driver_open_database(fi->driver,
Vect_subst_var(fi->database,
flowline_vec));
if (drvr == NULL) {
G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
Vect_subst_var(fi->database, flowline_vec), fi->driver);
}
db_set_error_handler_driver(drvr);
*driver = drvr;
sprintf(buf, "create table %s (cat integer, velocity double precision",
fi->table);
db_set_string(&sql, buf);
if (write_scalar)
db_append_string(&sql, ", input double precision");
if (use_sampled_map)
db_append_string(&sql, ", sampled double precision");
db_append_string(&sql, ")");
db_begin_transaction(drvr);
/* Create table */
if (db_execute_immediate(drvr, &sql) != DB_OK) {
G_fatal_error(_("Unable to create table: %s"), db_get_string(&sql));
}
if (db_create_index2(drvr, fi->table, fi->key) != DB_OK)
G_warning(_("Unable to create index for table <%s>, key <%s>"),
fi->table, fi->key);
/* Grant */
if (db_grant_on_table
(drvr, fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK) {
G_fatal_error(_("Unable to grant privileges on table <%s>"),
fi->table);
}
}
开发者ID:rashadkm,项目名称:grass_cmake,代码行数:48,代码来源:main.c
示例20: get_table_color
int get_table_color(int cat, int line,
struct Colors *colors, dbCatValArray *cvarr,
int *red, int *grn, int *blu)
{
int custom_rgb;
char colorstring[12]; /* RRR:GGG:BBB */
dbCatVal *cv;
custom_rgb = FALSE;
cv = NULL;
if (cat < 0)
return custom_rgb;
if (colors) {
/* read color table */
if (Rast_get_c_color(&cat, red, grn, blu, colors) == 1) {
custom_rgb = TRUE;
G_debug(3, "\tb: %d, g: %d, r: %d", *blu, *grn, *red);
}
}
/* read RGB colors from db for current area # */
if (cvarr && db_CatValArray_get_value(cvarr, cat, &cv) == DB_OK) {
sprintf(colorstring, "%s", db_get_string(cv->val.s));
if (*colorstring != '\0') {
G_debug(3, "element %d: colorstring: %s", line,
colorstring);
if (G_str_to_color(colorstring, red, grn, blu) == 1) {
custom_rgb = TRUE;
G_debug(3, "element:%d cat %d r:%d g:%d b:%d",
line, cat, *red, *grn, *blu);
}
else {
G_debug(3, "Invalid color definition '%s' ignored", colorstring);
ncolor_rules_skipped++;
}
}
else {
G_debug(3, "Invalid color definition '%s' ignored", colorstring);
ncolor_rules_skipped++;
}
}
return custom_rgb;
}
开发者ID:felipebetancur,项目名称:grass-ci,代码行数:48,代码来源:shape.c
注:本文中的db_get_string函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论