跳到主要內容

發表文章

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

初探 MongoDb, 安裝設定教學

相信大家都有聽過 NoSQL database, 而  Mongodb 就是 NoSQL database, 至於它的好處這邊就不佳贅述, 本篇文章主要是把我最近安裝MongoDb的步驟寫下來分享給各位參考 下載安裝Mangodb 設定環境 在MongoDB的目錄裡建立db 資料夾 在MongoDB的目錄裡建立log 資料夾 使用以下指令設定 mongodb ./mongod.exe --directoryperdb --dbpath "C:\Program Files\MongoDB\db" --logpath "C:\Program Files\MongoDB\log\mongo.log" --logappend --rest --install --dbpath  告訴mogodb將資料儲存到db, --logpath, --logappend  以append的方式將日誌儲存到 log\mongo.log, --install 以service的方式啟動 --rest  提供 rest api 讓我們操作db 設定完成後會看到 2017-09-27T02:04:52.151-0700 I CONTROL  [main] ** WARNING: --rest is specified without --httpinterface, 2017-09-27T02:04:52.207-0700 I CONTROL  [main] **          enabling http interface 啟動資料庫 net start mongodb The MongoDB service is starting. The MongoDB service was started successfully. 設定使用者 首先我們必須先進入mongodb shell  C:\Program Files\MongoDB\Server\3.4\bin> .\ mongo.exe MongoDB shell version v3.4.9 connecting

MS SQL Store Procedure 簡易教學

前言: 簡單的說Store Procedure 可以讓我們預先寫好一段SQL語法, 等要用的時候再去呼叫他 EXEC     @return_value = [dbo].[GetImgByProject] 這麼做的好處是我們可以讓複雜的query便精簡, 除此之外由於Store Procedure是已經編譯完後且最佳化完後的產物, 所以執行Store Procedure也可以提升query的整體效率 以下是以MS SQL示範如何建立使用Store Procedure 環境: MS SQL 建立Store Procedure Step 1. 編寫建立語法 起手式 Create Procedure  YOURNAME AS YOURQUERY 列如: Create Procedure GetImgByProject AS SELECT TOP 1000 [SID] ,[Name] ,[PartNumber] ,[Brand] ,[ProjectName] ,[CreateDatetime] ,[UpdateDatetime] FROM [ DATA . MDF ].[dbo].[modelname] 如果需要帶參數進來, 可以在Create Procedure後加入參數名, 型別, 長度 @PARAM   varchar (50)  列如: Create Procedure GetImgByProject @ProjectName varchar (50) AS SELECT TOP 1000 [SID] ,[Name] ,[PartNumber] ,[Brand] ,[ProjectName] ,[CreateDatetime] ,[UpdateDatetime] FROM [ DATA . MDF ].[dbo].[modelname] WHERE ProjectName = @ProjectName Step 2. 執行Execute建立 Store Procedure   Step 3. 重新整理看看, 檢

如何使用Hyper V 快速建立虛擬機器

前言: Hyper V是微軟內建的虛擬化服務, 他可以我們在自己的Windows 上建立和管理虛擬機器, 功能其實很像VMware 和VirtualBox. 要使用他其實很簡單, 基本上只要啟用在Windows Feature裡的Hyper V 服務, 然後重開機, 我們就能在Windows裡使用這個功能(限windows server 以及 windows 8/10 pro以上的版本) 基本步驟 1. 啟用服務 2. 打開Hyper-V新增VM 3. 選擇你的Bios設定, Legacy 或是 UEFI 這個設定主要是針對你的OS支援哪種硬碟格式MBR還是GPT, 若是MBR就該使用Legacy的Bios, GPT則是UEFI 4. 建立虛擬磁碟 進階步驟: 如何讓虛擬機器連接網路 1. 建立Virtual Switch      -打開Virtual Switch Manager並新增      -選擇你的網路裝置 2. 設定你的VM並選擇剛剛建立的      -對VM點右鍵選擇Settings       -設定Network Adapter

Simple setup tutorial for MSSQL LocalDb

Install LocalDB Use SQLLocalDB.msi Install SSMS to manage our DB Use "Web PlatForm Installer" Create LocalDB instance: SQLLocalDB.exe  Create   ["Instance Name"] For example: SQLLocalDB.exe  Create  "MSSQLLocalDB" Start LocalDB  instance : SQLLocalDB.exe  Start   ["Instance Name"] For example: SQLLocalDB.exe  Start  "MSSQLLocalDB" Deploy DB file: -Deploy by visual studio -Set Access Permission of APP_DATA folder for Application Pool in IIS Attach DB(or Attach MDF file) by SSMS: Login\Connect to SQL server Attach MDF          -Right click "Database" & select Attach...            - press "Add.." and select you MDF file Check LocalDB is installed: by looking for this registry: Debug LocalDB: -Check log file %localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB -Check log f

Cannot get a local application data path. Most probably a user profile is not loaded

當初開發時為了圖個方便, 所以直接把資料庫檔案(mdf)跟web service 透過 visual studio 部屬到機器內, 然後直接在機器上跑LocalDb, 結果卻出現以下的錯誤訊息 Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user. 很明顯地, 這個訊息表示我們必須設定IIS的 user profile 因為執行LocalDb的相關檔案是儲存在使用者資料夾裡面, 如: C:\Users\ Administrator \AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB 而跑在IIS上的web service預設是以 ApplicationPoolIdentity的身分去執行, 所以如果沒有load user profile的話, 就無法得知實際LocalDb instance的路徑 解法很簡單: Step 1. 在IIS上打開Application pool的頁面 Step 2. 選擇你的application pool Step 3. 點擊 Advanced Settings Step 4. 找到Load User Profile並選擇True Ref: https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/

The database could not be exclusively locked to perform the operation

這個問題是, 當我用SSMS更改資料庫的名稱時, 結果遇到以下的錯誤訊息, The database could not be exclusively locked to perform the operation. 原因是目前尚有其他connection正在連接資料庫, 所以我們的請求被拒絕了 解決的方法很簡單, 宣告單人模式(single user)來搶資源 ALTER DATABASE [C:\APS\APP_DATA\BOTDATA.MDF] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ; ALTER DATABASE [C:\APS\APP_DATA\BOTDATA.MDF] SET SINGLE_USER ; --Do something ALTER DATABASE [BotData] SET MULTI_USER WITH ROLLBACK IMMEDIATE ; ALTER DATABASE [BotData] SET MULTI_USER ;

Cannot connect to localdb

前言: LocalDb 是微軟推出的另一種小型資料庫, 運作起來其實跟SQL Express幾乎沒什麼差別, 好處是讓developer在開發階段時, 不需特別去維護像SQL Express這麼大的資料庫, 快速的安裝, 而且不需要特別的設定(zero-configuration)是他的優點 除此之外, 由於他執行的實體是launched on demand, 所以在需要的時候用的才會被啟動, 不像SQL Expresss runs as a service 常駐於系統  Run as user process, 所以當我們同時試圖以不同的windows user(IIS, SSMS)去存取mdf檔案時, mdf 會被第一個user鎖住, 造成第二個user無法使用 Not for multi-user scenario, 產生的問題如上 回到正題, 若使用LocalDb的時候遇到以下的錯誤訊息時該如何處理: Cannot connect to localdb 使用以下的指令檢查是否有正確安裝LocalDb的引擎 C:\Program Files\Microsoft SQL Server\130\LocalDB\Binn\SqlLocalDB.exe   /? 或是到registry 看: HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\13.0