cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jack O'Connor <jo4...@bristol.ac.uk>
Subject Re: show table status
Date Fri, 20 Jul 2007 22:15:11 GMT
Good news! It's getting correct results:

INFO  QueryLogger: show table status
INFO  QueryLogger: === returned 34 rows. - took 86 ms.
Exception in thread "main" INFO  QueryLogger: +++ no commit - 
transaction controlled externally.
java.lang.ClassCastException: org.objectstyle.cayenne.DataRow
	at 
com.statistics.ComputeStatistics.getcsDiskSpace(ComputeStatistics.java:838)
	at com.statistics.MainStatistics.main(MainStatistics.java:66)

It recieved the correct number of rows (34), but when I try to access 
them, I get errors. I've tried using an arbitrary class, and creating a 
model in cayenne especially for the "show table status" table, with 
attributes "Data_length" etc, so I have the correct getters and setters, 
but no luck...

Is there a way to extract generic data form an undefined "Map"?
Many Thanks
Jack

Andrus Adamchik wrote:
> Just try it :-)
> 
> Don't forget to call "setFetchingDataRows(true)" as mentioned by 
> Michael. This is what makes the difference. The result will be a list of 
> Maps.
> 
> Andrus
> 
> 
> On Jul 20, 2007, at 8:45 PM, Jack O'Connor wrote:
>> OK, but then if I use
>>
>> SQLTemplate select = new SQLTemplate(Artist.class, "show table status");
>> List artists = dataContext.performQuery(select);
>>
>> Surely I will have Artist objects, and will only be able to use that 
>> classes defined "getters and setters"? i.e. How will I extract data 
>> from columns: data_length and index_length?
>>
>> Thanks
>> Jack
>>
>> Andrus Adamchik wrote:
>>> In this case it is needed to pick the right database (Cayenne 
>>> potentially can access more than one). You can use an arbitrary class 
>>> from your model in this case.
>>> Andrus
>>> On Jul 20, 2007, at 5:24 PM, Jack O'Connor wrote:
>>>> Thanks for the reply, but all the SQLTemplates on that page require 
>>>> a class/table to refer to (all the examples are for Artist.class). 
>>>> The MySQL command "show table status" doesn't apply to any 
>>>> particular class...
>>>>
>>>> Jack
>>>>
>>>> Michael Gentry wrote:
>>>>> I would think you'd be able to use an SQLTemplate to perform that 
>>>>> kind of query:
>>>>> http://cayenne.apache.org/doc20/sqltemplate-query.html
>>>>> You'll want to call setFetchingDataRows(true) on your SQLTemplate
>>>>> object, too, otherwise Cayenne will try to make CayenneDataObjects out
>>>>> of it.  Do this before you run performQuery().
>>>>> /dev/mrg
>>>>> On 7/19/07, Jack O'Connor <jo4185@bristol.ac.uk> wrote:
>>>>>> Hi all, in my project I need to extract the total db size(kb). Im

>>>>>> using
>>>>>> Cayenne 1.2.3 and MySQL and I found the SQL command "show table 
>>>>>> status
>>>>>> from <db name>" which displays a table of information about
all of 
>>>>>> the
>>>>>> tables in a certain db. This table has columns like "Name"(of table),
>>>>>> "Data_length" and "Index_length", and apparently the best way to

>>>>>> extract
>>>>>> the size(kb) of a db is to sum the Data_length and Index_length 
>>>>>> columns
>>>>>> of this table.
>>>>>>
>>>>>> Does anyone know how I can get the results of this query into java?
>>>>>>
>>>>>> Many Thanks
>>>>>> Jack
>>>>>>
>>>>
>>
> 

Mime
View raw message