|
NMD
|

Go to the source code of this file.
Functions | |
| NMDErrorCode | NMDObjectDumpToMySQL (NMD_metadata obj) |
Generate an mysql dump of an object
Definition at line 11 of file nmdmysql.c.
References NMD_metadata_::cats, CHECKHASNMDCOOKIE, NMD_metadata_category_::cmps, NMD_metadata_item_::i, NMD_metadata_item_::name, NMD_metadata_category_::name, NMD_metadata_::ncat, NMD_metadata_category_::ncmp, NMDInt, NMDReal, NMDStringAppend(), NMDStringConcat(), NMDStringCreate(), NMDStringDestroy(), NMDStringGetString(), NMD_metadata_item_::r, and NMD_metadata_item_::t.
{
NMD_string namesstring,valuesstring;
int icat,icmp; NMDErrorCode ierr;
CHECKHASNMDCOOKIE(obj);
ierr = NMDStringCreate("",&namesstring); NMD_ERR_RETURN(ierr);
ierr = NMDStringCreate("",&valuesstring); NMD_ERR_RETURN(ierr);
for (icat=0; icat<obj->ncat; icat++) {
NMD_metadata_category cat = obj->cats[icat];
NMD_string catstring;
CHECKHASNMDCOOKIE(cat);
ierr = NMDStringCreate(cat->name,&catstring); NMD_ERR_RETURN(ierr);
for (icmp=0; icmp<cat->ncmp; icmp++) {
char cmpvalue[45];
NMD_metadata_item cmp = cat->cmps[icmp];
CHECKHASNMDCOOKIE(cmp);
memset(cmpvalue,0,45);
switch (cmp->t) {
case NMDInt : sprintf(cmpvalue,"%d",cmp->i); break;
case NMDReal : sprintf(cmpvalue,"%e",cmp->r); break;
default :
continue;
}
if (cmpvalue[0]) {
NMD_string cmpstring,cmpcatstring;
/* name */
ierr = NMDStringCreate(cmp->name,&cmpstring); NMD_ERR_RETURN(ierr);
ierr = NMDStringConcat
(0,catstring,':',cmpstring,0,&cmpcatstring); NMD_ERR_RETURN(ierr);
ierr = NMDStringAppend
(0,&namesstring,0,cmpcatstring,','); NMD_ERR_RETURN(ierr);
ierr = NMDStringDestroy(cmpstring); NMD_ERR_RETURN(ierr);
ierr = NMDStringDestroy(cmpcatstring); NMD_ERR_RETURN(ierr);
/* value */
ierr = NMDStringCreate(cmpvalue,&cmpcatstring); NMD_ERR_RETURN(ierr);
ierr = NMDStringAppend
(0,&valuesstring,0,cmpcatstring,','); NMD_ERR_RETURN(ierr);
ierr = NMDStringDestroy(cmpcatstring); NMD_ERR_RETURN(ierr);
}
}
ierr = NMDStringDestroy(catstring); NMD_ERR_RETURN(ierr);
}
{
const char *c;
ierr = NMDStringGetString(namesstring,&c); NMD_ERR_RETURN(ierr);
printf("INSERT INTO yourtable (%s)\n",c);
ierr = NMDStringGetString(valuesstring,&c); NMD_ERR_RETURN(ierr);
printf("VALUES (%s);\n",c);
}
return 0;
}

1.7.6.1