安裝了SQL Server2014後,原本的捷徑紛紛失效
例如CTRL+R,可以顯示或隱藏QUERY RESULT
機器上原本安裝的是SQL 2012,結果也在安裝完SQL2014後,捷徑也一起失效了。
查了半天,有人說在Tools>>Options>>Environment>>Keyboard Reset一下keyboard的設定就回復正常了。
如法泡製...咦........真的就好了。
附上SHORTCUT說明
https://msdn.microsoft.com/zh-tw/library/ms174205.aspx
2015年2月10日 星期二
2014年11月9日 星期日
dynamic decalre cursor...does not exist.
同事寫了一段SQL在SQL2000執行正常,但在SQL2008R2無法執行
SQL中是動態組一段declare cursor的語法
模擬了一下SQL大概如下
declare @sql nvarchar(4000),@c1 nvarchar(10),@c2 int
set @sql = N'declare cur cursor for select ''col1'' as col1 ,1 as col2'
exec sp_executesql @sql
open cur
fetch next from cur into @c1,@c2
while @@FETCH_STATUS = 0
begin
print @c1
fetch next from cur into @c1,@c2
end
close cur
deallocate cur
在SQL2000執行正常,會print出 'col1'
但在SQL2008R2上,回傳了以下的錯誤
Msg 16916, Level 16, State 1, Line 3
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 5
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 11
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 12
A cursor with the name 'cur' does not exist.
後來發現,在SQL2008R2另外幾個DB也可正常執行,就只有某個DB不行
查看了該DB的屬性,最後在option 的設定下有關Cursor的設定,有參數值Default Cursor = LOCAL,改成了GLOBAL後,就可利用dynamical sql宣告CURSOR了
SQL中是動態組一段declare cursor的語法
模擬了一下SQL大概如下
declare @sql nvarchar(4000),@c1 nvarchar(10),@c2 int
set @sql = N'declare cur cursor for select ''col1'' as col1 ,1 as col2'
exec sp_executesql @sql
open cur
fetch next from cur into @c1,@c2
while @@FETCH_STATUS = 0
begin
print @c1
fetch next from cur into @c1,@c2
end
close cur
deallocate cur
在SQL2000執行正常,會print出 'col1'
但在SQL2008R2上,回傳了以下的錯誤
Msg 16916, Level 16, State 1, Line 3
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 5
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 11
A cursor with the name 'cur' does not exist.
Msg 16916, Level 16, State 1, Line 12
A cursor with the name 'cur' does not exist.
後來發現,在SQL2008R2另外幾個DB也可正常執行,就只有某個DB不行
查看了該DB的屬性,最後在option 的設定下有關Cursor的設定,有參數值Default Cursor = LOCAL,改成了GLOBAL後,就可利用dynamical sql宣告CURSOR了
2014年10月24日 星期五
windows 8 安裝sql server 2005無法啟動
為了測試需求要在windows 8安裝sql server 2005 標準版
結果安裝到一半出現錯誤
SQL Error: 29503 — The SQL Server service failed to start
參考這篇文章,解法有點瞎,真的太瞎了....
就是裝到一半出現這個錯誤時先別急取消,
先到一台已安裝過的SQL SERVER 2005目錄下(MSSQL\Binn) 把里頭的sqlos.dll及sqlserver.exe二個檔複製到正在安裝的主機目錄下,然後再按重試(RETRY)鍵,這樣就可以順利完成安裝了
安裝完畢後記得再更新到SP4。
你說 瞎不瞎啊~
結果安裝到一半出現錯誤
SQL Error: 29503 — The SQL Server service failed to start
參考這篇文章,解法有點瞎,真的太瞎了....
就是裝到一半出現這個錯誤時先別急取消,
先到一台已安裝過的SQL SERVER 2005目錄下(MSSQL\Binn) 把里頭的sqlos.dll及sqlserver.exe二個檔複製到正在安裝的主機目錄下,然後再按重試(RETRY)鍵,這樣就可以順利完成安裝了
安裝完畢後記得再更新到SP4。
你說 瞎不瞎啊~
2014年10月6日 星期一
SQL CLR部署到SQL Server 2005問題(6218)
今天將一個原本在SQL 2012上使用的CLR部署到SQL 2005 資料庫,結果出現了以下的錯誤
(161,1): SQL72014: .Net SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 組件 'SQLCLR' 的 CREATE ASSEMBLY 失敗,因為組件 'SQLCLR' 驗證失敗。請檢查參考的組件是否為最新的,而且受信任 (針對 external_access 或不安全) 於資料庫中執行。接著將會出現 CLR 驗證器的訊息 (如果有的話)
(161,0): SQL72045: Script execution error. The executed script:
參考這篇KB
http://msdn.microsoft.com/zh-tw/library/vstudio/dahcx0ww%28v=vs.100%29.aspx
SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。
所以要將部署時的Target Framework改為 3.5的版本再部署即OK。
(161,1): SQL72014: .Net SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 組件 'SQLCLR' 的 CREATE ASSEMBLY 失敗,因為組件 'SQLCLR' 驗證失敗。請檢查參考的組件是否為最新的,而且受信任 (針對 external_access 或不安全) 於資料庫中執行。接著將會出現 CLR 驗證器的訊息 (如果有的話)
(161,0): SQL72045: Script execution error. The executed script:
參考這篇KB
http://msdn.microsoft.com/zh-tw/library/vstudio/dahcx0ww%28v=vs.100%29.aspx
SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。
所以要將部署時的Target Framework改為 3.5的版本再部署即OK。
2014年9月30日 星期二
SQL Server Openquery Informix unicdoe db
在SQL SERVER 2008R2 10.50.2500 上建立一個LIKED SERVER連結INFORMIX,OPENQUERY時遇到了一個錯誤
testab中只有一個欄位coltest varchar(40),輸入一個UNICODE的字,查詢後出現錯誤
select * from openquery (ifx_v12,'select * from testab')
訊息 7339,層級 16,狀態 1,行 1 連結伺服器 'ifx_v12' 的 OLE DB 提供者 'MSDASQL' 傳回無效的資料給資料行 '[MSDASQL].coltest'。
若改用
execute(N'select * from bev') at ifx_v12
則可執行但回傳的字變成??了
Informix 12.10.FC3WE 64bit dynamic online , CLIENT_LOCALE、SERVER_LOCALE、DB_LOCALE皆為zh_TW.uft8
ODBC為 IBM INFOMRIX ODBC 4.10 FD3DE 64bit版本
測試改用OLE DB ,設好後有以下的錯誤。
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot initialize the data source object of OLE DB provider "Ifxoledbc" for linked server "ifx_v12". (Microsoft SQL Server, Error: 7303)
找了一些參考 http://www.sqlservercentral.com/Forums/Topic564076-17-1.aspx 也無法連結。
一直都是用ODBC設定LINKED SERVER,但之前的INFORMIX DB都是BIG5沒有問題,這次換成UNICODE版本後就無法正常使用OPENQUERY了。
testab中只有一個欄位coltest varchar(40),輸入一個UNICODE的字,查詢後出現錯誤
select * from openquery (ifx_v12,'select * from testab')
訊息 7339,層級 16,狀態 1,行 1 連結伺服器 'ifx_v12' 的 OLE DB 提供者 'MSDASQL' 傳回無效的資料給資料行 '[MSDASQL].coltest'。
若改用
execute(N'select * from bev') at ifx_v12
則可執行但回傳的字變成??了
Informix 12.10.FC3WE 64bit dynamic online , CLIENT_LOCALE、SERVER_LOCALE、DB_LOCALE皆為zh_TW.uft8
ODBC為 IBM INFOMRIX ODBC 4.10 FD3DE 64bit版本
測試改用OLE DB ,設好後有以下的錯誤。
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot initialize the data source object of OLE DB provider "Ifxoledbc" for linked server "ifx_v12". (Microsoft SQL Server, Error: 7303)
找了一些參考 http://www.sqlservercentral.com/Forums/Topic564076-17-1.aspx 也無法連結。
一直都是用ODBC設定LINKED SERVER,但之前的INFORMIX DB都是BIG5沒有問題,這次換成UNICODE版本後就無法正常使用OPENQUERY了。
參考幾篇討論,突然發現有人說SQL SERVER不支援UFT8??
再看了幾篇相關的討論文章,東拼西湊後,改回使用ODBC,最後算是找到解法了
1.先進入ODBC 64位元 設定,在Environment 頁籤下,Client Locale設為zh_TW.57372,Database Locale設為zh_TW.57372
2.在Advance頁籤中,勾選 Report Char columns as Wchar columns
3.在IBM Informix Client SDK 4.10 (64-bit)下開啟SetNet32 找到 GL_USEGLU將值設為1 (這個我在ODBC找不到可設定的地方,只能先在SetNet32 下設定)
4.重新啟動SQL SERVER (只要ODBC 參數或SetNet32 值有變動,最好都重啟一下SQL SERVER)
然後OPENQUERY中文字就正常啦,可以select 也可以insert。
再看了幾篇相關的討論文章,東拼西湊後,改回使用ODBC,最後算是找到解法了
1.先進入ODBC 64位元 設定,在Environment 頁籤下,Client Locale設為zh_TW.57372,Database Locale設為zh_TW.57372
2.在Advance頁籤中,勾選 Report Char columns as Wchar columns
3.在IBM Informix Client SDK 4.10 (64-bit)下開啟SetNet32 找到 GL_USEGLU將值設為1 (這個我在ODBC找不到可設定的地方,只能先在SetNet32 下設定)
4.重新啟動SQL SERVER (只要ODBC 參數或SetNet32 值有變動,最好都重啟一下SQL SERVER)
然後OPENQUERY中文字就正常啦,可以select 也可以insert。
2014年9月13日 星期六
IE11 ReportViewer Printer crash
網站是架在WINDOWS 2003 32bit,資料庫則是SQL Server 2005,共用一台主機
開發則是用VS2012 .NET FRAMEWORK4.0,REPORT VIEWER是用
在WINDOWS 7(32 & 64位元)機器上以 IE11測試網站功能,結果RDLC的報表工具列整個走樣。
GOOGLE後,在MASTER PAGE<HEAD>修改
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 為
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
工具列顯示正常了,但印表機圖示不見了??
再GOOGLE,將網站加入相容性檢視後,印表機小圖出現了,初次點選要安裝ACTIVEX元件
,完畢後,按下印表機,結果IE直接CRASH嗝屁了....
再GOOGLE,大都是SQL2008R2後的解決方法,不外乎都是說上到.NET 4.5 以及安裝最新版的 REPORT VIEWER 2012 RUNTIME 就好了。
於是先在WINDOWS 2003安裝REPORT VIEWER 2012 RUNTIME(要先裝SQLSysClrTypes.msi X86版本),但開啟網頁後檢視報表點選印表機圖示時,提示要下載安裝的RSClientPrint卻不是SQLSERVER 2012的版本仍是SQL SERVER 2008版本?
想了半天,原來忘了要更改WEB.CONFIG的設定,將原本RDLC的版本都改為11.0.0.0即可。
幸好是用VIRTUALBOX測試 ,整個再還原重來一次就好。
改好WEB.CONFIG
<system.web><compilation debug="false"><assemblies> 下
<add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<pages ...> <controls>下
<add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagPrefix="rsweb"/>
<httpHandlers> 下
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false"/>
YA....印表終於正常了。
開發則是用VS2012 .NET FRAMEWORK4.0,REPORT VIEWER是用
在WINDOWS 7(32 & 64位元)機器上以 IE11測試網站功能,結果RDLC的報表工具列整個走樣。
GOOGLE後,在MASTER PAGE<HEAD>修改
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 為
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
工具列顯示正常了,但印表機圖示不見了??
再GOOGLE,將網站加入相容性檢視後,印表機小圖出現了,初次點選要安裝ACTIVEX元件
,完畢後,按下印表機,結果IE直接CRASH嗝屁了....
再GOOGLE,大都是SQL2008R2後的解決方法,不外乎都是說上到.NET 4.5 以及安裝最新版的 REPORT VIEWER 2012 RUNTIME 就好了。
於是先在WINDOWS 2003安裝REPORT VIEWER 2012 RUNTIME(要先裝SQLSysClrTypes.msi X86版本),但開啟網頁後檢視報表點選印表機圖示時,提示要下載安裝的RSClientPrint卻不是SQLSERVER 2012的版本仍是SQL SERVER 2008版本?
想了半天,原來忘了要更改WEB.CONFIG的設定,將原本RDLC的版本都改為11.0.0.0即可。
幸好是用VIRTUALBOX測試 ,整個再還原重來一次就好。
改好WEB.CONFIG
<system.web><compilation debug="false"><assemblies> 下
<add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<pages ...> <controls>下
<add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagPrefix="rsweb"/>
<httpHandlers> 下
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false"/>
YA....印表終於正常了。
2014年8月7日 星期四
MVC Entity存檔錯誤值不能為 null。
Entity Framework 6.0
儲存資料表 呼叫SaveChanges(),出現這個錯誤
值不能為 null。
參數名稱: value
原來建立Eneity Model時,自訂的tt檔忘了維護某個欄位的Data Annotation Display屬性,造成欄位屬性變成
[Display(Name = "")]
public string LogDeptName { get; set; }
一度以為是傳入的欄位內容值有NULL,最後檢查了半天發現每個欄位都有值但為何還有這個錯誤。原來是Model的問題....
註記一下....
儲存資料表 呼叫SaveChanges(),出現這個錯誤
值不能為 null。
參數名稱: value
原來建立Eneity Model時,自訂的tt檔忘了維護某個欄位的Data Annotation Display屬性,造成欄位屬性變成
[Display(Name = "")]
public string LogDeptName { get; set; }
一度以為是傳入的欄位內容值有NULL,最後檢查了半天發現每個欄位都有值但為何還有這個錯誤。原來是Model的問題....
註記一下....
訂閱:
文章 (Atom)
IIS 網站無法下載中文檔名檔案因為取消高位元字元
網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...
-
一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...
-
Row.Cells[2].Text == "abc" ? "ok" : "not ok" ; 或加入Microsoft. VisualBasic 參考使用 vb namespace using Microsoft...
-
freeFTPd是套免費的SFTP SERVER支援22 port SFTP及21port FTP,一般找到免費的都不支援SFTP只有技援FTPS。 之前一直有個困擾在幾台主機安裝後,有幾台重開機後,SFTP SERVER必須手動去啟動,一直以來老是搞不懂為什麼,今天看到一篇文...