Home » U++ Library support » U++ SQL » Question about SQL....
Question about SQL.... [message #29222] |
Mon, 11 October 2010 21:08 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
I'm totally new to sql, so maybe it's a dumb question.
I've a database with email as a primary key, I need to find if there's an entry with this email; if is there, update records, otherwise append them.
Here my (ugly) function :
bool ProtectDB::Set(VectorMap<String, Value> const &data)
{
String eMail = data.Get("EMAIL");
SQL * Select(SqlAll()).From(USERS).Where(EMAIL == eMail);
if(SQL.Fetch())
{
SQL * Update(USERS)
(NAME , data.Get("NAME"))
(ADDRESS , data.Get("ADDRESS"))
(COUNTRY , data.Get("COUNTRY"))
(ZIP , data.Get("ZIP"))
(PHONE , data.Get("PHONE"))
(FAX , data.Get("FAX"))
(CELL , data.Get("CELL"))
(LICENSES , data.Get("LICENSES"))
(EXPIRATION , data.Get("EXPIRATION"))
(ACTIVATIONKEY , data.Get("ACTIVATIONKEY"))
(ACTIVATIONSENT , data.Get("ACTIVATIONSENT"))
(ACTIVATED , data.Get("ACTIVATED"))
.Where(EMAIL == eMail);
}
else
{
SQL * Insert(USERS)
(EMAIL , eMail)
(NAME , data.Get("NAME"))
(ADDRESS , data.Get("ADDRESS"))
(COUNTRY , data.Get("COUNTRY"))
(ZIP , data.Get("ZIP"))
(PHONE , data.Get("PHONE"))
(FAX , data.Get("FAX"))
(CELL , data.Get("CELL"))
(LICENSES , data.Get("LICENSES"))
(EXPIRATION , data.Get("EXPIRATION"))
(ACTIVATIONKEY , data.Get("ACTIVATIONKEY"))
(ACTIVATIONSENT , data.Get("ACTIVATIONSENT"))
(ACTIVATED , data.Get("ACTIVATED"))
;
}
}
Purpose is clear enough... data is passed in with a VectorMap.
Is there a "cleaner" way to do it ? maybe without repeating so many times the record names ?
Ciao
Max
|
|
|
Goto Forum:
Current Time: Sat May 11 10:45:35 CEST 2024
Total time taken to generate the page: 0.02882 seconds
|