2015年5月29日星期五

filepizza - P2P File Transfer Tools

filepizza - P2P File Transfer Tools

Reference Link : http://free.com.tw/filepizza/

免費下載高畫質相片

免費下載高畫質相片

Reference Source: http://free.com.tw/13-stock-photos-free-for-commercial-use/
1. MMT–這網站提供大量、可用於商業用途的免費相片,由 Jeffery Betts 拍攝。每週會定期更新相片,網站的相片都有相當好的品質,無須註冊即可下載。
2. Camarama.de–網站的宗旨為讓使用者下載、分享所有可用於公眾領域的圖片或相片,包括個人及商業用途,該網頁的相片都有經過濾鏡特效處理,看起來跟一般圖庫相片的感覺不太一樣,每週更新。
3. Splashbase–在網站上可以搜尋、探索免費高畫質的相片和影片素材,網站內容可以說相當豐富,允許使用者投稿、上傳自己拍攝的相片,影片大多採用 CC 3.0 授權。
4. Realistic Shots–每週固定更新 7 張新相片,網站提供免費、高解析度的相片素材,可用於個人或商業用途。
5. BOSS FIGHT(推薦!)–提供多種分類的免費相片圖庫,包括科技、物件、自然、人物、動物、食物、建築,網站收錄的相片都非常有水準,而且看起來跟一般免費圖庫很不一樣。
6. FancyCrave–高畫質可用於個人或商業用途的免費圖庫,每日更新。
7. Skitterphoto–提供公眾領域宣告相片(Public Domain Photos),無須註冊,網站提供搜尋功能,每日更新。
8. Moveast–一位葡萄牙人設立的免費相片圖庫,決定將這些照片釋出,讓使用者自由下載使用。來這裡找找有沒有你需要的相片,然後把它帶走吧!
9. Jay Mantri–固定每週四會更新 7 張新相片,一個提供大量黑白相片的免費圖庫。
10. Free Nature Stock–如果你想尋找有關大自然的相片素材,例如花花草草、星空、瀑布河流等等,來這個網站就沒錯了!
11. SplitShire–無論你是設計師、部落客、網站管理者、社群行銷人員或是企業公司,都能自由使用網站上提供的免費相片素材,這些相片皆採用 CC0 授權,可用於個人或商業用途且沒有任何限制。
12. Magdeleine–每日更新的免費高畫質相片圖庫,網站還依照圖片主題、授權、顏色和標籤下去分門別類。
13. Startup Stock Photos–就網站名稱不難想見,這是一個已提供創業者相關的圖庫,主題包括蘋果電腦、工作、Mac、辦公室等等的相片素材。

總結

一口氣再次介紹 13 個免費圖庫,相信大家手邊都已有非常充裕、完整的免費圖庫來源,希望讓需要相片素材的讀者們,都能有更多更棒的發現。
如果你還有其他不錯的免費圖庫網站,也歡迎提供給我

2015年5月12日星期二

TSQL - s.p. to enable and disable all Referential Integrity

Create a s.p., which can enable or disable all Referential Integrity

USE [ToolBox]
GO
/****** Object:  StoredProcedure [dbo].[u_AllReferentialIntegrity]    Script Date: 05/12/2015 11:27:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[u_AllReferentialIntegrity]
(
@Database NVARCHAR (100),
@Disable BIT
)
AS 
BEGIN 
----------------------------------------------------------------
-- DISABLE ALL REFERENTIAL INTEGRITY

DECLARE @NAME nvarchar(100), @STR nvarchar(300), @Script nvarchar(max)

SET @Script = 'DECLARE table_cursor CURSOR FOR ' +
'SELECT NAME FROM ' +@Database+ '.SYS.TABLES WHERE NAME NOT IN (''HL_Vietnam.BAK'', ''Lovells_Tokyo_DAKS.BAK'') ORDER BY NAME '
EXECUTE sp_executesql @SCRIPT, N'@Database nvarchar(100)', @Database

OPEN table_cursor

-- Perform the first fetch and store the values in variables.
-- Note: The variables are in the same order as the columns
-- in the SELECT statement.

FETCH NEXT FROM table_cursor
INTO @NAME

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
  -- Concatenate and display the current values in the variables.
IF @Disable = 1 
BEGIN 
SET @STR = 'USE ' +@Database+ '; ALTER TABLE ' + @NAME + ' NOCHECK CONSTRAINT ALL'
END 
ELSE 
BEGIN 
SET @STR = 'USE ' +@Database+ '; ALTER TABLE ' + @NAME + ' CHECK CONSTRAINT ALL'
END 

PRINT @STR
EXECUTE sp_executesql @STR

  -- This is executed as long as the previous fetch succeeds.
  FETCH NEXT FROM table_cursor
  INTO @NAME
END

CLOSE table_cursor
DEALLOCATE table_cursor

-- EXEC [u_AllReferentialIntegrity] @DATABASE = 'INPROASIA', @DISABLE = TRUE
END 


TSQL - s.p. to enable and disable all trigger

Create a s.p. which can enable and disable all trigger.
USE [ToolBox]
GO
/****** Object:  StoredProcedure [dbo].[u_AllTriggers]    Script Date: 05/12/2015 11:23:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[u_AllTriggers] 
(
@Database NVARCHAR (100),
@Disable bit
)
AS 
BEGIN 
----------------------------------------------------------------
-- DISABLE OR ENABLE ALL TRIGGERS
DECLARE @TRNAME nvarchar(100), @TANAME nvarchar(100), @STR nvarchar(300), @Script nvarchar(MAX)

SET @Script = 'DECLARE trigger_cursor CURSOR FOR ' +
'SELECT tr.name AS TRNAME, ta.name AS TANAME from ' +@Database+ '.sys.objects tr ' +
'join ' +@Database+ '.sys.objects ta on tr.parent_object_id = ta.object_id ' +
'where tr.type = ''tr'' ' +
'order by ta.name, tr.name '

EXECUTE sp_executesql @SCRIPT, N'@Database nvarchar(100)', @Database

PRINT @Script 

OPEN trigger_cursor

-- Perform the first fetch and store the values in variables.
-- Note: The variables are in the same order as the columns
-- in the SELECT statement.

FETCH NEXT FROM trigger_cursor
INTO @TRNAME , @TANAME

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
-- Concatenate and display the current values in the variables.
IF @Disable=1 
BEGIN
SET @STR = 'USE ' +@DATABASE+'; DISABLE TRIGGER ' +@TRNAME+ ' ON ' +@TANAME
END 
ELSE 
BEGIN 
SET @STR = 'USE ' +@DATABASE+'; ENABLE TRIGGER ' +@TRNAME+ ' ON ' +@TANAME
END 

PRINT @STR
EXECUTE sp_executesql @STR

-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM trigger_cursor
INTO @TRNAME, @TANAME
END

CLOSE trigger_cursor
DEALLOCATE trigger_cursor

-- EXEC [u_AllTriggers] @DATABASE = 'INPROASIA', @DISABLE=FALSE 
END  

SQL Script - s.p. to kill active tasks for databases

Below is a script to kill active tasks for databases 

USE [ToolBox]
GO
/****** Object:  StoredProcedure [dbo].[u_KillAllTasks]    Script Date: 05/12/2015 11:18:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[u_KillAllTasks]
( @Database nvarchar(200))
AS
BEGIN
SET @Database = REPLACE (@Database, ' ','')
SET @Database = ''''+REPLACE (@Database, ',',''',''')+''''
DECLARE @SCRIPT NVARCHAR(MAX);
DECLARE @spid INT;
DECLARE MyCursor CURSOR FOR
SELECT P.spid FROM SYS.sysprocesses P JOIN SYS.databases D ON P.dbid = D.database_id
WHERE D.name NOT IN ('MASTER','MODEL','MSDB','TEMPDB') AND P.spid <> @@SPID
--WHERE D.name IN (@Database)
--PRINT @Database
OPEN MyCursor;
-- Perform the first fetch and store the values in variables.
-- Note: The variables are in the same order as the columns
-- in the SELECT statement.
FETCH NEXT FROM MyCursor
INTO @spid;
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
  -- Concatenate and display the current values in the variables.
  SET @SCRIPT = 'KILL '+ LTRIM(STR(@spid))
PRINT @SCRIPT
EXEC ( @SCRIPT )
  -- This is executed as long as the previous fetch succeeds.
  FETCH NEXT FROM MyCursor
  INTO @spid;
END
CLOSE MyCursor;
DEALLOCATE MyCursor;
----------------------------------------------------------------
-- EXEC DBO.U_KillAllTasks @DATABASE='INPROUS, INPROEU, TOOLBOX'
END 

2015年5月11日星期一

Oracle - Refresh Stats


Below is a script to refresh the statics

SELECT TABLE_NAME, NUM_ROWS FROM USER_TABLES ORDER BY 1
EXEC DBMS_STATS.GATHER_SCHEMA_STATS (OWNNAME=>'OwnerName')

Oracle - Resize Database File


When Oracle database file need to be enlarged or re-sized, below script can help.

1) Check the size of database file 
SELECT  a.tablespace_name,
    ROUND (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES) * 100,2) percentage_used,
    c.BYTES / 1024 / 1024 space_allocated,
    ROUND (c.BYTES / 1024 / 1024 - NVL (b.BYTES, 0) / 1024 / 1024,2) space_used,
    ROUND (NVL (b.BYTES, 0) / 1024 / 1024, 2) space_free,
    c.DATAFILES
  FROM dba_tablespaces a,
       (    SELECT   tablespace_name,
                  SUM (BYTES) BYTES
           FROM   dba_free_space
       GROUP BY   tablespace_name
       ) b,
      (    SELECT   COUNT (1) DATAFILES,
                  SUM (BYTES) BYTES,
                  tablespace_name
           FROM   dba_data_files
       GROUP BY   tablespace_name
    ) c
  WHERE b.tablespace_name(+) = a.tablespace_name
    AND c.tablespace_name(+) = a.tablespace_name
ORDER BY NVL (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES), 0) DESC;
2) Check the database path
SELECT * FROM DBA_DATA_FILES where TABLESPACE_NAME = 'XXX_Data';
SELECT * FROM Dba_Users;
3) Apply the re-size
ALTER DATABASE DATAFILE 'E:\APP\ORACLE\ORADATA\MEMOTECH\POLYU.DAT' RESIZE 2048M;

2015年5月9日星期六

getRowCount

I always use this function to get row count in the excel worksheet.

Public Function getRowCount(sheet As Variant) As Integer
    'Sheets(sheet).Select
    If sheet = 0 Then
        getRowCount = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
    Else
        getRowCount = Sheets(sheet).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
    End If
End Function

Public Function getColumnCount(sheet As Variant) As Integer
    'Sheets(sheet).Select
    If sheet = 0 Then
        getColumnCount = ActiveSheet.Cells.Find("*", SearchOrder:=
xlByColumns, SearchDirection:=xlPrevious).column
    Else
        getColumnCount = Sheets(sheet).Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).column
    End If
End Function