projects
/
cascardo
/
avaliacao2008.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Create more generic function helpers so they can... help!
[cascardo/avaliacao2008.git]
/
helper.c
diff --git
a/helper.c
b/helper.c
index
847b356
..
fd3a083
100644
(file)
--- a/
helper.c
+++ b/
helper.c
@@
-26,39
+26,48
@@
#include <string.h>
#include <sqlite3.h>
#include <string.h>
#include <sqlite3.h>
-static char * talker_email_query = "select email from auth_user,"
- "events_speaker where auth_user.id = events_speaker.user_id "
- "and events_speaker.id = %d;";
-static char * talker_name_query = "select first_name from auth_user,"
+static char * talker_user_query = "select %s from auth_user,"
"events_speaker where auth_user.id = events_speaker.user_id "
"and events_speaker.id = %d;";
"events_speaker where auth_user.id = events_speaker.user_id "
"and events_speaker.id = %d;";
-static char * get_
talker_userfield(sqlite3 *db, char *query, int id
)
+static char * get_
oneliner(sqlite3 *db, char *query, size_t qlen
)
{
sqlite3_stmt *stmt;
{
sqlite3_stmt *stmt;
- char * s;
int r;
int r;
- char *
email
= NULL;
- r = asprintf(&s, query, id);
-
r = sqlite3_prepare_v2(db, s, r, &stmt, NULL
);
-
free(s
);
+ char *
value
= NULL;
+ if (!qlen)
+
qlen = strlen(query
);
+
r = sqlite3_prepare_v2(db, query, qlen, &stmt, NULL
);
while (sqlite3_step(stmt) == SQLITE_ROW) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
- if (
email
)
- free(
email
);
-
email
= strdup(sqlite3_column_text(stmt, 0));
+ if (
value
)
+ free(
value
);
+
value
= strdup(sqlite3_column_text(stmt, 0));
}
sqlite3_finalize(stmt);
}
sqlite3_finalize(stmt);
- return email;
+ return value;
+}
+
+static char * get_oneliner_field_by_id(sqlite3 *db, char *query,
+ char *field, int id)
+{
+ char *s;
+ int r;
+ char *value;
+ r = asprintf(&s, query, field, id);
+ value = get_oneliner(db, s, r);
+ free(s);
+ return value;
}
char * get_talker_email(sqlite3 *db, int id)
{
}
char * get_talker_email(sqlite3 *db, int id)
{
- return get_
talker_userfield(db, talker_email_query
, id);
+ return get_
oneliner_field_by_id(db, talker_user_query, "email"
, id);
}
char * get_talker_name(sqlite3 *db, int id)
{
}
char * get_talker_name(sqlite3 *db, int id)
{
- return get_talker_userfield(db, talker_name_query, id);
+ return get_oneliner_field_by_id(db, talker_user_query, "first_name",
+ id);
}
}