2022年7月12日 星期二

MS-SQL 相容性層級

 

MS-SQL 相容性層級:

SQL Server 2008 (100)

SQL Server 2019 (150)


指令查詢目前所有資料庫的相容性層級版本:

SELECT name 'DB', compatibility_level FROM sys.databases


查詢SQLSERVER執行過的SQL記錄

 僅支援SQL SERVER2008及以上版本

SELECT TOP 1000
–建立時間
QS.creation_time,
–查詢語句
SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,
((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1
) AS statement_text,
–執行文字
ST.text,
–執行計劃
QS.total_worker_time,
QS.last_worker_time,
QS.max_worker_time,
QS.min_worker_time
FROM
sys.dm_exec_query_stats QS
–關鍵字
CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE
QS.creation_time BETWEEN ‘2018-05-08 09:00:00’ AND ‘2018-05-08 18:00:00’
–AND ST.text LIKE ‘%%’
ORDER BY
QS.creation_time DESC

SELECT TOP 1000
–建立時間
QS.creation_time,
–執行文字
ST.text
FROM
sys.dm_exec_query_stats QS
–關鍵字
CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE
QS.creation_time BETWEEN ‘2018-05-08 09:00:00’ AND ‘2018-05-08 18:00:00’
AND ST.text NOT LIKE ‘%SELECT * FROM T_LOCATIONINFO WHERE STRCLIPLOGICID in(%’
ORDER BY
QS.creation_time DESC

2022年7月11日 星期一

MS-SQL帳號只開放SELECT功能

 MS-SQL帳號只開放SELECT功能

db_datareader

db_denydataeader

--------------------

當無法刪除,必須先把帳號權限移轉

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA

--alter authorization on schema::[db_datareader] To [dbo]

--alter authorization on schema::[db_denydatareader] To [dbo]

--alter authorization on schema::[db_denydatawriter] To [dbo]


---------------------






2022年7月6日 星期三

在今年多雨的氣候,草總是特別長很快

 草又長大了,割草日

就拍拍照,和看看前些日子才網購買了櫛瓜種子;播種了10顆,共9顆發芽長出來了

在都市上班快30年了,現在每日最期待的就是假日農夫日了

拋開上班的壓力.沉澱自己.放空,不要再錢.工作的煩事...

當然這塊阿爸留下來的田地,我也是在為自己鋪路;未來退休後的農事運動休閒








2022年6月26日 星期日

自行車租借WebAPP系統-完整版

 


歡迎需要客製開發 WebAPP.WebAPI 系統的客戶

都可以加LINE與我聯絡

可以開發任何行業系統,包含硬體串接.各種金流串接及超商系統

也能開立電子發票.點餐系統.工廠BOM.進銷存.POS...等等

Google查 : 池龍工作室








2022年6月17日 星期五

vb.net利用SerialPort進行讀取串口操作

 Imports System

Imports System.IO.Ports


Public Class Form1


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'獲取計算機有效串口

        Dim ports As String() = SerialPort.GetPortNames() '必須用命名空間,用SerialPort,獲取計算機的有效串口

        Dim port As String

For Each port In ports

            portnamebox.Items.Add(port) '向combobox中添加項

        Next port

'初始化界面

        baudratebox.SelectedIndex() = 2

        portnamebox.SelectedIndex() = 0

        Serial_Port1() '初始化串口

        Label3.Text = SerialPort1.IsOpen

        statuslabel.Text = "串口未連接"

        statuslabel.ForeColor = Color.Red

        sendbox.Text = "123"

' baudratebox.Text = baudratebox.Items(0) 註釋和不註釋的地方可以替換

        'portnamebox.Text = portnamebox.Items(0)

    End Sub


Private Sub Serial_Port1() '設置串口參數

        SerialPort1.BaudRate = Val(baudratebox.Text) '波特率

        SerialPort1.PortName = portnamebox.Text '串口名稱

        SerialPort1.DataBits = 8 '數據位

        SerialPort1.StopBits = IO.Ports.StopBits.One '停止位

        SerialPort1.Parity = IO.Ports.Parity.None '校驗位

    End Sub


'關閉串口連接

    Private Sub closebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closebtn.Click

Try

            SerialPort1.Close() '關閉串口

            Label3.Text = SerialPort1.IsOpen

If SerialPort1.IsOpen = False Then

                statuslabel.Text = "串口未連接"

                statuslabel.ForeColor = Color.Red

                receivebox.Text = ""

                receivebytes.Text = ""

End If

Catch ex As Exception

            MessageBox.Show(ex.Message)

End Try

End Sub


'打開串口連接

    Private Sub openbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openbtn.Click

Try

            SerialPort1.Open() '打開串口

            Label3.Text = SerialPort1.IsOpen

If SerialPort1.IsOpen = True Then

                statuslabel.Text = "串口已連接"

                statuslabel.ForeColor = Color.Green

End If

Catch ex As Exception

            MessageBox.Show(ex.Message)

End Try

End Sub



'發送數據

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

            SerialPort1.Write(sendbox.Text)

Catch ex As Exception

            MessageBox.Show(ex.Message)

End Try


End Sub


'觸發接收事件

    Public Sub Sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

Me.Invoke(New EventHandler(AddressOf Sp_Receiving)) '調用接收數據函數

    End Sub


'接收數據

    Private Sub Sp_Receiving(ByVal sender As Object, ByVal e As EventArgs)

Dim strIncoming As String

Try

            receivebytes.Text = Str(Val(receivebytes.Text) + SerialPort1.BytesToRead)

If SerialPort1.BytesToRead > 0 Then

                Threading.Thread.Sleep(100) '添加的延時

                strIncoming = SerialPort1.ReadExisting.ToString '讀取緩衝區中的數據

                SerialPort1.DiscardInBuffer()

                receivebox.Text = strIncoming

End If

Catch ex As Exception

            MessageBox.Show(ex.Message)

End Try

End Sub

End Class

2022年6月10日 星期五

IIS 檔案上傳的大小限制 File Upload Limit (MaxRequestLength, MaxAllowedContentLength)

 IIS 檔案上傳的大小限制 File Upload Limit (MaxRequestLength, MaxAllowedContentLength)


藉由調整 maxAllowedContentLength來設定 IIS 所允許的檔案上傳大小,預設值為 30000000 相當於 28.6 MB,調整為 104857600 相當於 100 MB。


<system.webServer>

    <security>

        <requestFiltering>

            <requestLimits maxAllowedContentLength="104857600" />

        </requestFiltering>

    </security>

</system.webServer>


另外也可以使用 GUI 來設定: