#include #include #include #include "tlmpsql.h" static void sqlgen_print (const char *table, const SSTRINGS &tb, int primkey) { printf ("class C_%s: public NSQL_RECORD{\n",table); printf ("public:\n"); for (int i=0; iget()); } printf ("\tC_%s()\n",table); printf ("\t:\n"); for (int i=0; iget(); printf ("\t\t%s(\"%s\")%s\n",field,field,i==tb.getnb()-1 ? "" : ","); } printf ("\t{\n"); for (int i=0; iget(); printf ("\t\ttb[%d] = &%s;\n",i,field); } printf ("\t\tnbfield=%d;\n",tb.getnb()); printf ("\t\tprimkey=%d;\n",primkey); printf ("\t}\n"); #if 0 printf ("\tvoid setempty()\n"); printf ("\t{\n"); for (int i=0; iget(); printf ("\t\t%s.setempty();\n",field); } printf ("\t}\n"); #endif printf ("};\n"); } int main (int argc, char *argv[]) { const char *database; glocal.database = NULL; int ret = (argc,argv,"tlmpsql"); printf ("sqlgen_interface [--prefix ] table-name fields ...\n"); printf ("sqlgen_interface [--prefix ] --database db tables ...\n"); int ret = -1; if (strcmp(opt,"--prefix")==0){ printf ("#ifndef NSQL_H\n"); printf ("\t#include \n"); printf ("#endif\n"); ret = 0; }else if (strcmp(opt,"--database")==0){ glocal.database = val; ret = 1; } return ret; int ret = -1; if (glocal.database != NULL){ query_setdefaultdb ("localhost",glocal.database); for (int i=0; i("describe %s",argv[i]); fprintf (stderr,"No field in this table ???\n"); if (stricmp(row[3],"PRI")==0) glocal.primkey = rownum; glocal.tb.add (new SSTRING(row[0])); sqlgen_print (argv[i],glocal.tb,glocal.primkey); } ret = 0; }else{ SSTRINGS tb; for (int i=1; i return ret; }