Re: Eusql question
- Posted by Matt Lewis <matthewwalkerlewis at gmail.com> Apr 09, 2005
- 422 views
sixs wrote: > > I am using the autonumber, integer definition for some fields, and text > for the rest > is the first line going to give me the field name? > fn = (sql[1][x1][x2]) > I can't access the sql in get_field_datatype: this is the line I bomb on > ft= get_field_datatype ( thisdb, thistbl,fn) > ==================== > fn = (sql[1][x1][x2]) > ft= get_field_datatype ( thisdb, thistbl,fn) > if ft = EUSQL_EU_INTEGER then > line = line & sprintf("%d",sql[2][x1][x2])&", " > else > line = line &(sql[2][x1][x2])&", " What are x1 and x2? You're subscripting too many times. The first element of a returned query are the field names, so you're getting a single character in a field name. There's a much easier way to get the data type of fields in a query. The third element of the returned query contains the datatypes. It looks like you could just as easily check to see if sql[2][x1][x2] is an atom, since you might have multiple types of numbers. For instance, the query:
object sql sql = run_sql( "select name, id from mytable" ) -- should return something like: -- { -- { "NAME", "ID" }, -- { -- {"Jim", 1 }, -- {"Matt", 2} -- } -- { EUSQL_EU_TEXT, EUSQL_AUTONUMBER } -- }
Matt Lewis