There is sqlite3_column_origin_name( stmt, n ) ; is that also the alias? instead of sqlite3_column_name(stmt,n ); or does there need to be sqlite3_column_original that really returns the not alias?
On Mon, Jan 8, 2018 at 3:21 AM, Bart Smissaert <bart.smissa...@gmail.com> wrote: > > As you can see > > Should read: > As you said > > RBS > > On Mon, Jan 8, 2018 at 11:17 AM, Bart Smissaert <bart.smissa...@gmail.com> > wrote: > > > > Best is to define type on output > > > > Yes, looks that way. As you can see the alias can help, eg: > > select max(integer_date_column) as integer_date_column > > > > what I also added is coding to pick up the intended formatting from the > > alias, not from the column but by just specifying the output datatype: > > select max(integer_date) as int_date > > > > All this is only needed if sqlite3_column_decltype produces null. > > Looks kind of sorted now, thanks. > > > > > > RBS > > > > On Mon, Jan 8, 2018 at 10:29 AM, R Smith <ryansmit...@gmail.com> wrote: > > > >> > >> On 2018/01/08 12:00 AM, Bart Smissaert wrote: > >> > >>> OK, I can see your point and I am sure you are right. > >>> All this has to do with the question (discussed not long ago) how one > >>> should know how the output from a statement should be handled by > >>> an application receiving the data. In my case that application is > Excel. > >>> Take for example an integer. Excel need to know if this integer should > >>> be formatted as a plain integer or as an Excel date. When the user > moves > >>> data to SQLite (from the sheet or from eg a text file) he/she will tell > >>> how > >>> this data should be stored. In this case the data type will be INTEGER > or > >>> INT_DATE. This information will be stored in SQLite_master. The > question > >>> is now how to match up the columns of the output with these data types > in > >>> SQLite_master. I have a simple system for this with sqlite3_column_type > >>> and sqlite3_column_decltype etc. but this is just not fool proof. It > >>> looks > >>> I will need to think up some more elaborate system. One option is that > >>> the > >>> user > >>> just tells (along with the statement) what the output formatting should > >>> be, > >>> but that would be cumbersome. > >>> > >> > >> Yeah, that is a tough one. > >> Even in other databases you won't be able to achieve this. "Type" is > used > >> mostly as an internal specification and sometimes output formatter. > >> Preserving the original column type through query abstraction to the > output > >> is simply not possible, especially if that type is homemade. You are > >> interested in an output type, it should be specified within the output. > >> > >> Best is to define type on output. You might decrease cumbersomeness a > lot > >> if the list of types is small, using perhaps just a one or two character > >> type identifier, like this: > >> > >> SELECT foo AS Col1_i, bar AS Col2_d.... etc. > >> (Where i denotes INT and d is INT-DATE etc.) > >> > >> If you expect the list of types to grow in future, pick slightly longer > >> identifiers. > >> > >> This of course would not be feasible if you (as in your collective devs) > >> do not control the resulting queries, like if users can make queries on > the > >> fly.... > >> > >> Another method is keeping a table with names and types that the > >> application can read. Add to it all the names used for output and the > types > >> implied. Say it contains the name Col1 with Type INT then whenever your > >> application reads a query where the column name is Col1 (via origin or > >> alias) then it knows that is an INT. This is the saddest method and > should > >> be avoided if possible. > >> > >> Good luck! > >> > >> Ryan > >> > >> _______________________________________________ > >> sqlite-users mailing list > >> sqlite-users@mailinglists.sqlite.org > >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > >> > > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users