通常習慣先用rdl design layuout測試sql,preview後沒問題再把rdl rename成rdlc,然後再放在asp.net進行程式碼撰寫
這幾天用到martix做了一張表,因為有複雜的邏輯,試了幾天好不容易試出來,用了二個martix做重疊再加上寫一些iif的判斷,最後preview報表數字也都很ok.
結果用rdlc 試跑程式後,發現有一行數字差很大, 而且二個martix overlap在rdl 很ok,但rdl 卻變成不無法重疊, 折成二塊了.
檢查了半天,看不出rdl和rdlc的差異在哪? 都是一樣的sql 啊???
無解ing......
2009年11月26日 星期四
2009年11月25日 星期三
set vs select variable
在sqltips上看到這篇When to use SET vs SELECT when assigning values to variables
說明得很詳細.
以前只以為 select 只能接一個變數, 後來在sqltips上看到某一篇文的scripts時,
才知,原來一次select 可以接多個變數
select @var1 = col1 , @var2= col2 from table1 where pk = 1
mssqltips 是一個很不錯的網站, 多去逛逛收穫不少
說明得很詳細.
以前只以為 select 只能接一個變數, 後來在sqltips上看到某一篇文的scripts時,
才知,原來一次select 可以接多個變數
select @var1 = col1 , @var2= col2 from table1 where pk = 1
mssqltips 是一個很不錯的網站, 多去逛逛收穫不少
2009年11月18日 星期三
informix openrowset
要先安裝informix odbc,設定好dsn
SELECT * FROM OPENROWSET('MSDASQL','DSN=ifxdb;UID=test;PWD=test','select * from tabTest')
SELECT * FROM OPENROWSET('MSDASQL','DSN=ifxdb;UID=test;PWD=test','select * from tabTest')
2009年11月17日 星期二
sql server linked db error -
某天, sql 2000上的 連到informix 的liked db 發生了以下的錯誤..
---------------------------
SQL Server Enterprise Manager
---------------------------
錯誤 7399: OLE DB Provider 'MSDASQL' 報告了錯誤。提供者報告了未預期的重大錯誤。
OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x8000ffff: 提供者報告了未預期的重大錯誤。]。
---------------------------
確定
---------------------------
查了半天, 相關的設定都沒有錯, 重新建立linked db設定....都沒用哩.
更奇怪的是, dts 透過相同的odbc 設定直接連到informix 下載資料也都ok
唯獨透過linked db , 以openquery 的方式就發生以上的錯誤
想說重新啟動一下sql server 吧. 結果, 竟然好了耶
針正是賭著鬼啊.........
---------------------------
SQL Server Enterprise Manager
---------------------------
錯誤 7399: OLE DB Provider 'MSDASQL' 報告了錯誤。提供者報告了未預期的重大錯誤。
OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x8000ffff: 提供者報告了未預期的重大錯誤。]。
---------------------------
確定
---------------------------
查了半天, 相關的設定都沒有錯, 重新建立linked db設定....都沒用哩.
更奇怪的是, dts 透過相同的odbc 設定直接連到informix 下載資料也都ok
唯獨透過linked db , 以openquery 的方式就發生以上的錯誤
想說重新啟動一下sql server 吧. 結果, 竟然好了耶
針正是賭著鬼啊.........
2009年11月16日 星期一
並未將物件參考設定為物件的執行個體
vs2008+sp1, rebuild solution時會有這個error, 但沒有指出是哪一個page或物件,
再rebuild幾次,然後又ok
搞不清到底是哪兒發生問題
直接run web site又沒問題, 只有發生在build site的時候
也不是這位仁兄說的問題
"後來發現是 Solution 的 Startup Page 重新設一下就行了"-----> 沒用沒用
開始發生這個奇怪問題時,是把web site solution搬到另一個儲存路徑.
why????
後記....
半年後的一天,同事終於煩了,於是一個一個目錄加入想要測看看到底是什麼原因造成的
結果他說是因為在某個目錄有加入rdlc的原因,如果把rdlc檔案移除掉,compiler就不會出現問題了...
我在想,是不是因為在設計rdlc時,我通常都是先在SSRS 的report designer先做一個rdl,測試沒什麼問題後,再rename rdl to rdlc,然後再加入到vs的專案?
如果沒在vs專案修改過rdlc檔, compile似乎也沒問題.
another why????
再rebuild幾次,然後又ok
搞不清到底是哪兒發生問題
直接run web site又沒問題, 只有發生在build site的時候
也不是這位仁兄說的問題
"後來發現是 Solution 的 Startup Page 重新設一下就行了"-----> 沒用沒用
開始發生這個奇怪問題時,是把web site solution搬到另一個儲存路徑.
why????
後記....
半年後的一天,同事終於煩了,於是一個一個目錄加入想要測看看到底是什麼原因造成的
結果他說是因為在某個目錄有加入rdlc的原因,如果把rdlc檔案移除掉,compiler就不會出現問題了...
我在想,是不是因為在設計rdlc時,我通常都是先在SSRS 的report designer先做一個rdl,測試沒什麼問題後,再rename rdl to rdlc,然後再加入到vs的專案?
如果沒在vs專案修改過rdlc檔, compile似乎也沒問題.
another why????
you must choose a publish location that is not a sub-folder of the source web site
vs.net 2005, publish website with http://localhost/mywebsite
appears errors,
“you must choose a publish location that is not a sub-folder of the source web site”
just replace localhost with yourServerName,
it should be resolved.
appears errors,
“you must choose a publish location that is not a sub-folder of the source web site”
just replace localhost with yourServerName,
it should be resolved.
2009年11月6日 星期五
Debug a SQL Assembly
參考 Overview of T-SQL and CLR debugging in SQL Server 2005由Server Explorer 来Debug
- 开启assembly 的project, 例asmStatistics.sln, 进入Visual Studio (也可以不必开启任何Solution或Peoject)
- 在工具列-》 VIew -》 Server Explorer (Ctrl+ Alt + F5 ), 开启Server Explorer Window
- 在Server Explorer Window 的Data Connections , 按右键,选Add Connection,连线到要Debug的Database
- 展开这个Database,在 Assembly 下选要Debug的Assembly,例如asmStatistics, 展开后,选要Debug的Function, 例如zspAsmStatistics_test
- 在zspAsmStatistics_test按右键,选’‘Step Into Stored Procedure‘‘,即可进入Debugg Mode
2009年11月5日 星期四
sql server 取date 及 time
select convert(varchar(10) , getdate(),112 ) as myDate, convert(varchar(8),getdate(),8) as myHour
回傳:20091105 17:44:57
select convert(varchar(10) , getdate(),121 ) as myDate, convert(varchar(8),getdate(),8) as myHour
回傳:2009-11-05 17:44:57
回傳:20091105 17:44:57
select convert(varchar(10) , getdate(),121 ) as myDate, convert(varchar(8),getdate(),8) as myHour
回傳:2009-11-05 17:44:57
2009年11月4日 星期三
tsql 多值的參數傳入stored procedure
在tsql中,如果單一條件要符合多個條件值時,都會以 in 的方式
select * from test where col1 in ( '1234','5678,'abcd')
如果這個多值的參數想要傳入做為stored proedure 的input parameter時,看來是不可行的
有二種方法:
1. 用charindex
select * from test where charindex ( col1 , '1234,5678,abcd') > 0
2.寫一個table function,
select * from test
where col1 in ( select valuString from dbo.zfnRtnStringTable ( '1234,5678,abcd' ) )
以下function來自一段不曉得在哪看過的script...,引用一下
CREATE FUNCTION dbo.zfnRtnStringTable ( @key varchar(8000))
RETURNS @rtnTable TABLE ( stringValue varchar(10))
AS
BEGIN
DECLARE @strValue varchar(10), @pos int
SET @key = @key+ ','
SET @pos= charindex(',', @key, 1)
IF replace(@key, ',', '') <> ''
BEGIN
WHILE @pos> 0
BEGIN
SET @strValue = left(@key, @pos- 1)
IF @strValue <> ''
BEGIN
insert into @rtnTable values( @strValue )
END
SET @key = right(@key, len(@key) - @pos)
SET @pos= charindex(',', @key, 1)
END
END
RETURN
END
select * from test where col1 in ( '1234','5678,'abcd')
如果這個多值的參數想要傳入做為stored proedure 的input parameter時,看來是不可行的
有二種方法:
1. 用charindex
select * from test where charindex ( col1 , '1234,5678,abcd') > 0
2.寫一個table function,
select * from test
where col1 in ( select valuString from dbo.zfnRtnStringTable ( '1234,5678,abcd' ) )
以下function來自一段不曉得在哪看過的script...,引用一下
CREATE FUNCTION dbo.zfnRtnStringTable ( @key varchar(8000))
RETURNS @rtnTable TABLE ( stringValue varchar(10))
AS
BEGIN
DECLARE @strValue varchar(10), @pos int
SET @key = @key+ ','
SET @pos= charindex(',', @key, 1)
IF replace(@key, ',', '') <> ''
BEGIN
WHILE @pos> 0
BEGIN
SET @strValue = left(@key, @pos- 1)
IF @strValue <> ''
BEGIN
insert into @rtnTable values( @strValue )
END
SET @key = right(@key, len(@key) - @pos)
SET @pos= charindex(',', @key, 1)
END
END
RETURN
END
訂閱:
文章 (Atom)
自動記錄滑鼠點選操作
為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
建了一個工作排程,定時執行batch檔。 batch中寫了一段xcopy,主要針對有異動較新檔案時才複製。 echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find...
-
改用SQL Server Management Studio 2017有一段時間了。 在執行一段之前寫的SQL要組出一段語法時,里頭包含了使用CHAR(10)當作換行符號的文字,在輸出結果中,使用複製貼上的方式要進行執行時,發現換行符號都失效了。 但如果使用Results...