List:MySQL++« Previous MessageNext Message »
From:Королев Илья Date:November 22 2006 10:20am
Subject:Re: SSQLS v2 :)
View as plain text  
Here is an example of autogenerated code.
Code is divided into *.h and *.cpp.

I guess it save all features. It's some examples of using such code


1. Normal case
struct_A a;
cerr << "INSERT INTO " << a.table() << "(" << a.field_list()
<< ") VALUES( "    
<< ")" << endl;

will output

INSERT INTO table_A(tkey,tts) VALUES( )

2. Global change field name
struct_A a;
struct_A::fields()[1] = "timestamp";
cerr << "INSERT INTO " << a.table() << "(" << a.field_list()
<< ") VALUES( "    
<< ")" << endl;

will output

INSERT INTO table_A(tkey,timestamp) VALUES( )

3. Global change field name
struct_A a;
struct_A::fields()[1] = "DATE_ADD(tts, INTERVAL 1 DAY)";
cerr << "SELECT " << a.field_list() <<  " FROM " << a.table()
<< endl;

will output

SELECT tkey,DATE_ADD(tts, INTERVAL 1 DAY) from table_A


4. Local change field name & Show only keys fields
struct_A a;
StringList flist = struct_A::fields();

list[0] = "tkey + 1";
cerr << "SELECT " << a.field_list(struct_A::keys(), false, flist) <<  "
FROM " 
<< a.table() << endl;

will output

SELECT tkey +1 FROM table_A

4. Local change field name & Show only not keys fields
struct_A a;
StringList flist = struct_A::fields();

list[0] = "tkey + 1";
cerr << "SELECT " << a.field_list(struct_A::keys(), true, flist) <<  "
FROM " 
<< a.table() << endl;

will output

SELECT tts FROM table_A


Are any features missed?

В сообщении от 22 ноября 2006 03:09 Warren Young написал(a):
> Королев Илья wrote:
> > I'm studying expanded SSQLS code and I have a question.
> > As I can see,  field_list() (for example) return a temporary object of
> > <ClassName>_field_list. And real output to stream operate with it. I
> > wonder, what are advantages of such approach? Why we can't just return
> > std::string in field_list()? Disadvantage is heavy *.h.
>
> The advantage is that a list of field names is more flexible than a
> single string listing the fields.  This advantage matters if you don't
> need all of the fields, or you need to have them in multiple formats.  I
> would only let you change this as you suggest if you can prove that all
> uses of the field list objects only need the fields in a single format,
> and they need all of them, always.

Attachment: [text/x-c++src] 1.cpp
Attachment: [text/x-c++hdr] 1.h
Thread
SSQLS v2 :)Королев Илья21 Nov
  • Re: SSQLS v2 :)Warren Young22 Nov
    • Re: SSQLS v2 :)Королев Илья22 Nov
      • Re: SSQLS v2 :)Королев Илья22 Nov
        • Re: SSQLS v2 :)Королев Илья23 Nov
          • Re: SSQLS v2 :)Warren Young28 Nov
            • Re: SSQLS v2 :)Королев Илья28 Nov
              • Re: SSQLS v2 :)Warren Young29 Nov
                • Re: SSQLS v2 :)Королев Илья25 Dec
                  • Re: SSQLS v2 :)Королев Илья26 Dec
                    • Re: SSQLS v2 :)Королев Илья27 Dec
                      • Re: SSQLS v2 :)Королев Илья25 Jan