發表文章

目前顯示的是 9月, 2020的文章

T-SQL筆記7_單(雙)井字號_暫存Table與@資料表變數的使用

圖片
  若到某些公司工作使用到MS SQL資料庫 在預存程序中時常看到有井字號Table名稱的出現 這類通常就是所謂的「暫存資料表」 最後往往都會搭配一個drop 井字號Table 暫存資料表就是暫存資料的儲存處,於系統執行過程中, 經常需要執行一些複雜的運算與處理,在run-time過程不免會產生 一些階段性與過渡性for後續處理的資料(資料在整個處理作業完成後便不再需要而必須刪除) 像此類資料就適合存放於暫存資料表,可以想像成寫在程式中就會是對應為DataTable,用於資料變數傳遞用途、後製處理等等。  暫存資料表由開發人員自行創建,不管您於任何資料庫中建立暫存資料表, 暫存資料表皆固定存放於系統資料庫的 tempdb中,而且 一旦不使用會自動被刪除。 於 MS SQL中又分為 第一種.區域性暫存資料表(臨時表) 以一個井字號(#)開頭 => #[TableName] 區域性暫存資料表只有建立它之連線的使用者能夠存取它,而且一旦此位使用者切斷與 SQL Server 的連線,區域性暫存資料表會在該session 關閉時自動被刪除, 當然,此位使用者也可以在連線期間 以 DROP TABLE 陳述式來刪除他所建立的區域性暫存資料表。 暫存表存在於"tempdb"這個database 裡 好的寫作習慣, 應在暫存表使用完畢後, 下指令去 drop, 而不是讓系統自動回收。 因為區域性臨時表通常都匯存比較久怕又記錄到上一次填入的值 備註:在使用前跟使用後通常都要分別加上 先判斷是否有已存於tempdb的 區域性臨時表 如上一次沒有成功釋放掉就要drop 1 2 3 4 IF Object_id( 'tempdb..#tmp_table' ) IS NOT NULL BEGIN DROP TABLE # tmp_table END 用於確保Temp Table有釋放掉,避免錯誤發生。 用法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 --Step1.先檢查是否沒有drop成功還有留存,或已經有取過相同名稱的 IF Object_id( 'tempdb..#temp_table_name&

T-SQL筆記6_Table查詢時兩個點用法

select * from db..tb 等同於 select * from db.dbo.tb

[.NET Webform]_ListView_DataPager使用方式

圖片
ASP.NET 3.5 的產物 ListView 基本常用的三種Template,分別為LayoutTemplate、ItemTemplate和EmptyDataTemplate。 LayoutTemplate定義了放置資料的容器,容器可以使用像是Table來裝,換言之,就是指Table Header。 ItemTemplate就是實際上和資料做Binding的容器,有點類似Repeater,換言之,就是指Table Body。 EmptyDataTemplate無資料時候會被套用的樣版面。 其他還有像是AlternatingItemTemplate等樣版 ListView如果layout使用<table>的話,其實長出來跟GridView就沒啥太大差異, 只是ListView的layout可以更加彈性的設計, 使用方式基本上也差不多,最大的差異就是ListView上是Item,而GridView是用Row。 ListView有點包含了像DataList 一般可用於展示清單 或跟GrdiView一樣用於展示表格的資料 ListView基本上可用於取代asp.net weborm中其他涉及資料綁定的控件 (例如:GridView , DataList , Repeater , FormView , DetailsView等等) ListView可說是更具彈性的上述控件集合體 較為不同的是在設定完DataSource後 預設是不會有外觀的必須自行透過設定自己寫的樣板或內建樣板來設計外觀 ListView本身提供的五種預設外觀 Grid Titled BulletedList Flow SingleRow 其中一種應用情境: 資料存成DataTable後再Bind到ListView的控制項 這裡先產生一個本機端測試用的資料庫 使用北風資料庫中的Customer https://github.com/microsoft/sql-server-samples/tree/master/samples/databases/northwind-pubs webconfig 1 2 3 4 <connectionStrings> <add name= "NorthwindConnectionString" connecti

SSMS錯誤處裡_資料庫 'tempdb' 的記錄檔檔案已滿。請備份資料庫的交易記錄來釋放部分的記錄檔空間。

圖片
最近在存取SQL Server 時發生 訊息 9002,層級 17,狀態 6,行 200 資料庫 'tempdb' 的記錄檔檔案已滿。請備份資料庫的交易記錄來釋放部分的記錄檔空間。 的錯誤 先確認版本資訊 SELECT RIGHT ( LEFT ( @@ VERSION , 25 ), 4 ) N '產品版本編號' , SERVERPROPERTY( 'ProductVersion' ) N '版本編號' , SERVERPROPERTY( 'ProductLevel' ) N '版本層級' , SERVERPROPERTY( 'Edition' ) N '執行個體產品版本' , DATABASEPROPERTYEX( 'master' , 'Version' ) N '資料庫的內部版本號碼' , @@ VERSION N '相關的版本編號、處理器架構、建置日期和作業系統' REF: 交易記錄檔已滿、爆掉;截斷交易記錄檔。(The transaction log for database 'DB1' is full. ;Transaction Log Truncation) https://sqltimes.wordpress.com/2014/07/05/sql-server-error-messages-the-transaction-log-for-database-tempdb-is-full-due-to-active_transaction/ http://sharedderrick.blogspot.com/2009/03/transaction-log-for-database-is-full.html?m=1 https://www.mssqltips.com/sqlservertip/4829/tempdb-size-resets-after-a-sql-server-service-restart/

.NET Core第1天_.NET Core 跟其他程式語言框架評比

圖片
ASP.NET Core  主要是一個跨平台、高性能之開源Web框架 就高性能這部分 於Web Framework Benchmarks這個公認的外部框架性能測試評比網站 可以得到較為客觀的比較資料 https://www.techempower.com/benchmarks/ 這裡我們透過該網頁平台的過濾來做個比較(目前查看最後更新為到今年5月左右) 選幾個後端主流程式語言(由於選太多容易眼花) PHP、Java、Python、C#、Ruby、Javascript(NodeJs) 對應流行的框架 PHP : codeigniter , laravel Python : Django , Flask Java : Spring Ruby : Rails NodeJs : koa , express C# : .NET Core (我們的這匹黑馬) 經分析統計出來 最終分數評比第一名是.NET Core 排列在第二的是Java 的 Spring框架 By Json序列化效能來比較 是.NET Core遙遙領先 By 單次查詢比較 .Net Core 跟 Java Spring都有不錯的成績 整體看仍是.NET Core領先 By 多筆查詢來比較 這次Java 的Spring獨佔鰲頭 By 資料更新效能來比較 則又是.NET Core 領先 藉此可以得知未來.NET Core的需求趨勢會逐增

.NET Core第2天_.NET Core應用程式佈署_Azure平台版

圖片
 於Visual Studio2019新增一個新的.NET Core Web Application 這裡由於只是要示範如何Deploy一個.NET Core Web應用程式專案 直接用有預設範本的專案 在此我們第二步驟需要去Azure平台上建立App Service方案 這裡要小心特別注意預設為S1方案每個月會扣2千多 要記得改成免費的F1開發測試方案 在挑選方案時也可以搭配Azure官網計價網頁去比照著看比較能夠拿捏好資源成本 https://azure.microsoft.com/zh-tw/pricing/details/app-service/windows/ 對專案右鍵->發布 至此我們只是完成發布的前置設定 最後再按下發布 網頁就佈署成功了~~

ASP.NET_AJAX生命週期事件流_AJAX技術跟傳統網頁不同優缺點比較

圖片
AJAX技術跟傳統網頁不同 傳統網頁技術採取同步(要等待、排隊)互動過程,Client端跟Server端一來一往的過程。 使用者向伺服器端發送請求 伺服器依照Client端請求執行相應邏輯再回傳結果 也因為這樣不連續過程 當伺服器忙線時候用戶就會有一段等待時間 優點 優點1.迅速網頁刷新 Ajax技術主要就是用Browser內建的Js運行HTTP通訊功能,藉此來進行和Server有效率的溝通,達到比較完善更具人性化的網頁互動效果。 優點2.透過非同步請求技術 Ajax可不用更新全部整個網頁葉面,且能多次傳送要更新的目標部分範圍跟資料。 換言之,Browser只需要於必要時跟Server溝通獲取資料即可,因而間接達到所謂快速而有效率的網頁刷新效果。 優點3.Client端分擔一些原應於Server上執行的程式 此外,也改善Server Loading問題,由於Ajax是將部分js程式送至於Client端電腦上 透過Browser進行生成網頁元件方式,來降低Server的Loading。 優點4.減少網路流量 Ajax傳送資料量由於是部分的而非傳統的整個網頁,因此 使網路較不易塞車加速其網頁更新速度。 缺點 缺點1.跨瀏覽器相容性問題(早期的問題) 必須要符合EMCA標準、W3C標準的瀏覽器,若是早期IE則可能常遇到不支援問題。 缺點2.javascript程式碼公開 由於程式碼實作於Client端,因此大家都能看的到,也使開發者較難保護智慧財產權。 缺點3.Ajax只能於相同網域下的Server做通訊,如果是要讀取不同網域資料則要透過類似CGI等方式才可能跨Server溝通。 缺點4.使用者容易無感在必要時需要給予提示訊息、進度顯示 傳統網頁可能在按鈕點擊查詢會有轉圈圈等待的圖示顯示,使用者會知道在查詢要等待。 但換到Ajax後容易沒有感覺,因而可能有重複按按鈕的行為發生。 缺點5.安全疑慮 由於不必刷新整個網頁,大部分業務操作都在遠端Browser因而容易有資料被竄改的風險。 例如下訂單金額被改成0,免費就購買成功等可怕的問題也會發生。 ASP.NET AJAX生命週期事件流 一個完整的ASP.NET  AJAX生命週期示意圖 Sys.WebForms.PageRequestManager 這個Class主要就是負責.NET AJAX(部分刷

T-SQL筆記5_跨DB Server SQL存取_sp_addlinkedserver_sp_dropserver_跨DB存取opendatasource

  通常會先下 EXEC sp_helpserver SELECT * FROM  master.dbo.sysservers 這兩個功能都一樣 可以查看所有 linked server 資訊 只要是在此集合中的各個DB Server都是能相互進行跨存取的 若沒有則要透過 sp_addlinkedserver語法 先建立連線 EXEC sp_addlinkedserver @server='192.168.2.66',--被訪問的伺服器別名(習慣上直接使用目標伺服器IP,或取個別名如:JOY) @srvproduct='', @provider='SQLOLEDB', @datasrc='192.168.2.66' --要訪問的伺服器 @server = 'server' ,     -- 要建立的連結伺服器名稱。   @srvproduct = 'product_name' ,     -- 加入的 OLE DB 資料來源產品名稱。     -- nvarchar(128),預設值是 NULL。   @provider = 'provider_name' ,     -- 唯一程式化識別碼 (PROGID)。     -- nvarchar(128),預設值是 NULL。   @datasrc = 'data_source' ,     -- 資料來源名稱。     -- nvarchar(4000),DBPROP_INIT_DATASOURCE 屬性。   @location = 'location' ,     -- 資料庫位置。     -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_LOCATION 屬性。   @provstr = 'provider_string' ,     -- 連接字串,用來識別唯一資料來源。     -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_PROVIDERSTRING 屬性。   @catalog = 'catalog'     -- 所用的目錄。     -- 是 sysname,預

T-SQL筆記4_又二進位資料截斷了嗎?_datalength_len_exec sp_help等常用指令之使用

圖片
  通常一個Table塞入動作過程中如果某欄位大小比塞進來內容還要小 你就會跟它Say Hello 如何確認資料表各Column的型態與大小呢? 在MS SQL中可以透過 exec sp_help {TableName} 來達成 如何透過T-SQL來確認資料內容的實際資料大小(非字元長) 通常中文字元會佔據2byte 一般的數字、英文字元則是1byte select datalength('資料內容') 字元長度 select len('資料內容')

Xamarin手機應用開發(一)_MasterDetail漢堡選單的介面開發

圖片
  如何做到側邊漢堡選單跳出側欄列表來進行主畫面切換 開發環境  vs2019 Win10作業系統 專案中新建一目錄Pages 新增三個ContentPage的新項目 各自取名為HomePage、MenuPage、CustomerPage 新增一個MasterDeatil項目命名為MasterPage  MasterPage 的xaml介面程式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <?xml version="1.0" encoding="utf-8" ?> <MasterDetailPage xmlns= "http://xamarin.com/schemas/2014/forms" xmlns:x= "http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d= "http://xamarin.com/schemas/2014/forms/design" xmlns:mc= "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:pages= "clr-namespace:ECommerseApp.Pages" mc:Ignorable= "d" x:Class= "ECommerseApp.Pages.MasterPage" > <MasterDetailPage.Master> <ContentPage Title= "Master" > <StackLayout Padding= "5" > <