How do I automatically update a chart when a table gets a new record?

1.7k views Asked by At

Suppose I have a table with a colour field — red/white/blue — and every time my app receives an event over TCP/IP and inserts a new row into the database, I want a data-aware pie chart component to auto-update showing the ratio of those colours. How can I do that?

I've seen examples of data-aware components, but they just show the value of each row of a table (I haven't gotten too far yet). In fact, I am not even sure that adding another row in the database will add another row to the DB-aware grid (push, as opposed to pull).

1

There are 1 answers

2
Johan On BEST ANSWER

I am not even sure that adding another row in the database will add another row to the DB aware grid (push, as opposed to pull).

If the dataset is live, adding a row to the dataset will update the grid.

Look, let's just imagine that I have a table who's primary key is a colour - red/white/blue - and every time my app receives an event over TCP/IP and inserts a new row into the database I want a data-aware pie chart component to auto-update showing the ratio of those colours.

  1. Add a Connection to your form, set it up so it connects to your database.
  2. Set the connection active property to true
  3. Add a Query to your form, set the connection to connection1
  4. Set the sql property to SELECT (count(*) / b.totalcount) as percentage, b.totalcount FROM table1 a CROSS JOIN (select count(*) as totalcount from table1) b GROUP BY a.color
  5. Set the active property to true
  6. Drop a datasource on the form, set its dataset to query1
  7. Drop a DBChart on the form, set its datasource to datasource1
  8. Fiddle with the DBChart to make it display a piechart.