Dashing List小部件 - 来自Microsoft SQL的数据未显示

时间:2016-02-09 19:18:08

标签: sql-server ruby ubuntu sinatra dashing

我一直在反对这个问题,我正在寻找一些帮助。我有一个一直运作良好的Dashing Wallboard。我正在尝试添加一个显示数据列表的小部件,但是小部件和history.yml文件中都没有显示任何数据。

我的其他小部件正在从同一个SQL服务器中提取数据,这就是下面省略连接信息的原因:

我的.rb作业文件中有以下代码:

results = client.execute("
  SELECT [data] as name, [data2] as value
  FROM [DB]
  Where [Conditions]
  GROUP BY [Tier];
")

   datalist = results.map do |row|
      row = {
        :label => row['name'],
        :value => row['value']
      }
    end     
send_event('listofdata', { items: datalist } )  

我的仪表板小部件如下所示:

<li data-row="2" data-col="3" data-sizex="1" data-sizey="2">
  <div data-id="listofdata" data-view="List" data-title="This is a list of data" data-unordered="true"></div>
</li>   

我的SQL查询的输出如下所示:

Tier 1  10
Tier2   6
Tier 3  31

数据类型是varchar和int。我在名称列中包含空格和空格,以显示查询的结果包含空格。

我也试过像这样做红宝石一面,但它仍然没有用。

results.each do |row|
    send_event('listofdata', { label: row['name'], value: row['value'] })  
end 

无论我做什么,我都无法在小部件中显示任何数据。 我错过了一些非常明显的东西吗?

更新1: 也试过这个,没有用:

datalist = results.each(:symbolize_keys => true, :as => :array, :cache_rows => true, :empty_sets => true) do |rowset| end

data_count = Array.new

for j in (0...results.affected_rows)
    data_count << {"label" => datalist[j].at(0), "value" => datalist[j].at(1).to_i}
end

1 个答案:

答案 0 :(得分:0)

它似乎与列名和散列键冲突。这已得到确认:

results = client.execute("
  SELECT CAST([data] as varchar) as name, CAST([data2] as int) as count
  FROM [DB]
  Where [Conditions]
  GROUP BY [Tier];
")

   datalist = results.map do |row|
      row = {
        :label => row['name'],
        :value => row['count']
      }
    end     
send_event('listofdata', { items: datalist } )  
相关问题