That is close to what I need guys, but I should have made a better example.
I have a legacy database called my_legacy_db which is separate from the
normal db.
my_legacy_db
----------------------------------------
users
- email
- username
- name
So cliff, your first part would work to generate field names and put
everything in a dict to build the query's. The problem is when I do this
query:
db().select(my_legacy_db.users)
I get this error:
In [20] : db().select(my_legacy_db.users)
Traceback (most recent call last):
File "/opt/web-apps/web2py/gluon/contrib/shell.py", line 233, in run
exec compiled in statement_module.__dict__
File "<string>", line 1, in <module>
File "/opt/web-apps/web2py/gluon/dal.py", line 7578, in select
return adapter.select(self.query,fields,attributes)
File "/opt/web-apps/web2py/gluon/dal.py", line 1307, in select
sql = self._select(query, fields, attributes)
File "/opt/web-apps/web2py/gluon/dal.py", line 1196, in _select
raise SyntaxError, 'Set: no tables selected'
SyntaxError: Set: no tables selected
So I know how to fix the problem, but I don't know why I can't query
my_legacy_db.
On Friday, April 20, 2012 7:46:23 AM UTC-5, Cliff wrote:
>
> Is this what you want?
>
> Table | column count
> -----------------------
> dog | 3
> -----------------------
> car | 3
> -----------------------
>
> This will get the data.
> For table in db.tables:
> column_count = 0
> for field in table.fields
> column_count += 1
> print table.name
> print column_count
>
> On Thursday, April 19, 2012 9:57:57 PM UTC-4, Cody Goodman wrote:
>>
>> I have multiple databases:
>>
>> dog
>> -------
>> type
>> color
>> sound
>>
>> car
>> ------
>> model
>> maker
>> condition
>>
>> I need to generate a grid with the table names, then under them the
>> number of columns there are. I have made multiple DAL objects for each
>> database like so:
>>
>> dog = DAL('mysql://root:@localhost/dog)
>> car = DAL('mysql://root:@localhost/car)
>>
>> I then thought I could just make select statements getting the count of
>> each column like this:
>>
>> number_of_dog_colors = len(db().select(dog.type.color))
>>
>> Of course my syntax for that is wrong and I got a :
>> <type 'exceptions.AttributeError'> 'function' object has no attribute
>> 'color'
>>
>> I was just wondering what the correct syntax to do that was, and if I'm
>> going about it correctly. Once I get the syntax correct, I was going to
>> make a list of all the table names, then get the count for each. If anyone
>> knows a better way to do this, please let me know.
>>
>> Thanks in advance for any help.
>>
>> Sincerely,
>>
>> Cody Goodman
>>
>>