❶ EMQ X 規則引擎系列 (八)橋接消息到 MQTT Broker
橋接是一種連接多猜畢局個 EMQ X 或者其他 MQTT 消息中間件的方式。不同於集群,工作在橋接模式下的節點之間不會復制主題樹和路由表。橋接模式所做的是:
工作在橋接模式下和工作在集群模式下有不同的應用場景,橋接可以完成一些單純使用集群無法實現的功能:
在具體應用中,一個橋接的發起節點可以被近似的看作一個遠程節點的客戶端。
該場景需要將 EMQ X 指定主題下且滿足條件的消息橋接到 EMQ X 或其他 MQTT Broker。
該場景下設備端上報信息如下:穗讓
當上報數據發動機轉速數值大於 8000 時,將該條信息部分數據橋接到指定伺服器。
為了避免與本地的 emqx 出現埠沖突的情況,這里臨時修改一下 mosquitto 的本地埠號。
打開 EMQ X Dashboard,進入左側菜單的 資源 頁面,點擊 新建 按鈕,鍵入 Mosquitto 伺服器信息進行資源創建。
EMQ X 集群中節點所在網路環境可能互不相通,資源創建成功後點擊列表中 狀態按鈕 ,查看各個節點資源連接狀況,如果節點上資源不可用,請檢查配置是否正確、網路連通性,並點擊 重連 按鈕手動重連。
進入左側菜單的 規則 頁面,點擊 新建 按鈕,進行規則創數吵建。這里選擇觸發事件 消息發布 ,在消息發布時觸發該規則進行數據處理。
選定觸發事件後,我們可在界面上看到可選欄位及示例 sql:
規則引擎使用 SQL 語句處理規則條件,該業務中我們需要將 payload 中所有欄位單獨選擇出來,使用 payload.fieldName 格式進行選擇,還需要消息上下文的 topic 、 qos 、 id 信息,當前 SQL 如下:
使用 SQL 語句 WHERE 字句進行條件篩選,該業務中我們需要定義兩個條件:
組合上一步驟得到 SQL 如下:
藉助 SQL 測試功能,我們可以實時查看當前 SQL 處理後的數據輸出,該功能需要我們指定 payload 等模擬原始數據。
payload 數據如下,注意更改 tachometer 數值大小,以滿足 SQL 條件:
點擊 SQL 測試 切換按鈕,更改 topic 與 payload 為場景中的信息,點擊 測試 按鈕查看數據輸出:
測試輸出數據為:
測試輸出與預期相符,我們可以進行後續步驟。
SQL 條件輸入輸出無誤後,我們繼續添加相應動作,配置寫入 SQL 語句,將篩選結果橋接到 Mosquitto。
點擊響應動作中的 添加 按鈕,選擇 橋接數據到 MQTT Broker 動作,選取剛剛選定的資源。
我們成功創建了一條規則,包含一個處理動作,動作期望效果如下:
切換到 工具 --> Websocket 頁面,使用任意信息客戶端連接到 EMQ X,連接成功後在 消息 卡片發送如下信息:
點擊 發送 按鈕,發送成功後查看得到當前規則已命中統計值為 1。
命令行中查看數據表記錄得到數據如下:
至此,我們通過規則引擎實現了使用規則引擎橋接消息到 MQTT Broker 的業務開發。
准備另外一台 emqx 節點,啟動兩台 emqx。
打開 EMQ X Dashboard,進入左側菜單的 資源 頁面,點擊 新建 按鈕,鍵入 EMQ X 伺服器信息進行資源創建。
EMQ X 集群中節點所在網路環境可能互不相通,資源創建成功後點擊列表中 狀態按鈕 ,查看各個節點資源連接狀況,如果節點上資源不可用,請檢查配置是否正確、網路連通性,並點擊 重連 按鈕手動重連。
進入左側菜單的 規則 頁面,點擊 新建 按鈕,進行規則創建。這里選擇觸發事件 消息發布 ,在消息發布時觸發該規則進行數據處理。
選定觸發事件後,我們可在界面上看到可選欄位及示例 SQL:
規則引擎使用 SQL 語句處理規則條件,該業務中我們需要將 payload 中所有欄位單獨選擇出來,使用 payload.fieldName 格式進行選擇,還需要消息上下文的 topic 、 qos 、 id 信息,當前 SQL 如下:
使用 SQL 語句 WHERE 字句進行條件篩選,該業務中我們需要定義兩個條件:
組合上一步驟得到 SQL 如下:
藉助 SQL 測試功能,我們可以實時查看當前 SQL 處理後的數據輸出,該功能需要我們指定 payload 等模擬原始數據。
payload 數據如下,注意更改 tachometer 數值大小,以滿足 SQL 條件:
點擊 SQL 測試 切換按鈕,更改 topic 與 payload 為場景中的信息,點擊 測試 按鈕查看數據輸出:
測試輸出數據為:
測試輸出與預期相符,我們可以進行後續步驟。
SQL 條件輸入輸出無誤後,我們繼續添加相應動作,配置寫入 SQL 語句,將篩選結果橋接到另一個 EMQ X。
點擊響應動作中的 添加 按鈕,選擇 橋接數據到 MQTT Broker 動作,選取剛剛選定的資源。
我們成功創建了一條規則,包含一個處理動作,動作期望效果如下:
切換到 工具 --> Websocket 頁面,使用任意信息客戶端連接到 EMQ X,連接成功後在 消息 卡片發送如下信息:
點擊 發送 按鈕,發送成功後查看得到當前規則已命中統計值為 1。
使用命令行中查看數據表記錄得到數據如下:
至此,我們通過規則引擎實現了使用規則引擎橋接消息的業務開發。
你的意思就是要設置你的電腦為伺服器
別人來訪問你的資料庫
!
這個簡單好辦!
看到沒
在身份驗證的地方輸入伺服器的IP就可以啦!其他用戶不用做任何設置!
❸ 用SqlDataReader和SqlDataAdapter讀取數據有啥區別
這個是這樣的,SqlDataReader只能用於讀,在讀的過程中資料庫一直保持打開狀態,不過讀的效率還是可以的
SqlDataAdapter(數據適配器)、DataSet
先將數據取出來放到dataset中,然後就可以關閉資料庫了,通過sqldataadapter還可以更新刪除資料庫中的東西,功能很強大,要好好學習。
像綁定某些數據源之類的話強烈建議用SqlDataAdapter(數據適配器)、DataSet
方法,這樣不僅綁定簡單而且可以做更新和刪除操作(當然用read讀出來後在建立連接去刪除也是可以的)找本書看看那吧,c#的書現在很多了,我手上都超過三本了
❹ SQL一次更新多行多列數據。
.net里有個控制項的功能和你說的類似,不知道是不是你要的功能,
SqlDataAdapter是 DataSet和 SQL Server之間的橋接器,用於檢索和保存數據。SqlDataAdapter通過對數據源使用適當的Transact-SQL語句映射 Fill(它可更改DataSet中的數據以匹配數據源中的數據)和 Update(它可更改數據源中的數據以匹配 DataSet中的數據)來提供這一橋接。當SqlDataAdapter填充 DataSet時,它為返回的數據創建必需的表和列(如果這些表和列尚不存在)。
喜歡的話你可以查查
❺ 資料庫連接問題 虛擬機連接物理機sql資料庫
物理機windows7 x86已安裝 vs2010、SQL server 2008虛擬機windows xp 只安裝 framework 3.5網關192.168.1.1物理機ip 192.168.1.2虛擬機ip 192.168.1.100虛擬機網路適配器用橋接方式直接連接到物理網路下面是用物理機編譯的C#程序using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication3{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } //LZ物理機計算機名 string str = "server=LZ;database=db_books;uid=sqllz;pwd=00000"; SqlConnection sql = new SqlConnection(); private void Form1_Load(object sender, EventArgs e) { //string str = "server=LZ\\Administrator;database=" + "db_books" + ";uid=LZ\\Administrator;pwd=.";} private void button1_Click(object sender, EventArgs e) { sql.ConnectionString = str; sql.Open(); if (sql.State == ConnectionState.Open) label1.Text = "Yes"; else label1.Text = "No"; } }}此程序在物理機運行正常label顯示yes但在虛擬機出現下面錯誤,求解已經按網上設置了資料庫能遠程連接