2018年5月13日 星期日

快速於MS SQL Server上建立 Stored Procedure (預存程序)

使用工具:Microsoft SQL Server Management Studio

首先於物件總管中,資料庫→SampleDB→可程式性→預存程序,右鍵→新增→預存程序

會先看到如下區段的範本
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <作者名>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName> 
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>, 
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

    -- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO

範例:
我要建立一個名為PROC_TestInput,有兩個輸入參數,型態分別為 NVARCHAR 與 INT
之後再將這兩個輸入參數寫入至 資料庫中的 Student

所以我需要把上面改成以下這樣

CREATE PROCEDURE PROC_Test
@Param1 NVARCHAR(50),
@Param2 int
AS
BEGIN
SET NOCOUNT ON;

Insert into TestTable(Name, Age) Values( @Param1, @Param2 )
END
GO
大概說明一下

CREATE PROCEDURE PROC_Test
這一行是指建立一個名為「PROC_Test」的Store Procedure

@Param1 NVARCHAR(50) 這一行則是建立一個名為 @Param1 ,型態是 NVARCHAR(50) 的
輸入參數,如果要有多個參數只用「,」隔開即可

Insert into TestTable(Name, Age) Values( @Param1, @Param2 ) 這個就標準的 t-SQL 的 Insert語法,唯一不同的是,後面的 Values的部分是指定上面建立的輸入參數

設定都完成時,直接點一下Management Studio 上的「執行」即會依上面的設定建立起
Stored Procedure了

2012年7月31日 星期二

SQL Server 2008 防止儲存需要資料表重建的變更

解決方法:
工具->選項->左邊選單 Designers(設計師),裡面把防止儲存需要資料表重建的變更,取消掉,就可以了

2012年6月21日 星期四

Dream Weaver 由於錯誤 下列翻譯程式不能被載入 FlashObject.htm

突然遇到這詭異的問題,解決方法如下:

1.先關閉DreamWeaver。
2.刪除C:\Documents and Settings\您的使用者帳號\Application Data\Adobe\Dreamweaver CS4\zh_TW\Configuration這路徑底下檔案為WinFileCache開頭的.dat檔。
3.打開DreamWeaver。

2012年4月2日 星期一

jCarousel

jCarousel官網
http://sorgalla.com/jcarousel/


jCarousel屬性說明

属性資料型態預設值描述
verticalboolfalse指定carousel是水平还是垂直方向滚动。
startinteger1开始的元素编号。
offsetinteger1初始化后第一个可见的元素编号。
sizeinteger<li>如果size属性没指定,则为<li>元素的个数
元素的个数。
scrollinteger3每次滚动切换的元素数量。
visibleintegernull如果设置此项,元素的宽度和高度值将根据区域的宽度和高度值来重新计算,以显示此数量的元素。
animationmixed“fast”滚动效果的速度(“slow”或者”fast”),也可以是毫秒的整数(参见 jQuery Documentation)。如果设置为0,关闭切换效果。
easingstringnull你想使用的缓冲效果的名字 (参见 jQuery Documentation).
autointeger0指定每隔多少秒自动滚动内容。如果设置为0(默认值)将关闭自动切换。
wrapstringnull表示是否将第一个和最后一个元素实现连接效果。选项值可以是"first", "last"或者 "both"。如果设置为null,默认关闭连接效果。 你也可以设置"circular"选项实现循环效果。例子 Circular carousel 演示如何实现此效果。
initCallbackfunctionnull在初始化carousel后调用的JavaScript函数。包含两个参数:调用函数的carousel实例对象和carousel的初始化状态(init, reset 或者reload)。
itemLoadCallbackfunctionnull在carousel动态载入内容后调用的JavaScript函数。包含两个参数:调用函数的carousel实例对象和carousel的动作状态(prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemLoadCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemFirstInCallbackfunctionnull当 某个元素成为carousel显示范围的第一个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对 象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemFirstInCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemFirstOutCallbackfunctionnull当某个元素不再是carousel显示范围的第一个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemFirstOutCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemLastInCallbackfunctionnull当某个元素成为carousel显示范围的最后一个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemLastInCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemLastOutCallbackfunctionnull当某个元素不再是carousel显示范围的最后一个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemLastOutCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemVisibleInCallbackfunctionnull当某个元素成为carousel显示范围的某个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemVisibleInCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
itemVisibleOutCallbackfunctionnull当某个元素不再是carousel显示范围的某个元素时调用的JavaScript函数(在滚动效果之后)。需要四个参数:调用函数的实例对象,<li>对象本身,元素在列表中中序号,以及carousel的动作状态 (prev, next or init)。你还可以传递一个或两个函数的列表,分别表示切换前和切换后的动作。 itemVisibleOutCallback: {  onBeforeAnimation: callback1,  onAfterAnimation: callback2}
buttonNextCallbackfunctionnull当’next’按钮状态改变时调用的JavaScript函数。方法的返回值用于控制’next’按钮可用还是不可用。需要三个参数:调用函数的实例对象,按钮控件元素和该按钮是否可用的标记。
buttonPrevCallbackfunctionnull当’previous’按钮状态改变时调用的JavaScript函数。方法的返回值用于控制’previous’按钮可用还是不可用。需要三个参数:调用函数的实例对象,按钮控件元素和该按钮是否可用的标记。
buttonNextHTMLstring<div></div>自动生成的next按钮的HTML标记。如果设置为空,不创建next按钮。
buttonPrevHTMLstring<div></div>自动生成的prev按钮的HTML标记。如果设置为空,不创建prev按钮。
buttonNextEventstring“click”指定触发next操作的事件名。
buttonPrevEventstring“click”指定触发prev操作的事件名。


原始出處:http://www.cnblogs.com/ANDY_ZHANG/archive/2010/11/20/1882845.html

2012年3月4日 星期日

ISAPI_Rewrite 3.1 中文URL亂碼的解決方案


以前在用 ISAPI_Rewrite  1.3 版的時候 只要對URL進行 UrlEncode 處理。就可以正常接收到中文.
但是現在換為 3.1版以後 GB2342 的接收頁面就是亂碼了。
現在換用了 ISAPI_Rewrite 3.x 發現編碼後的字元會變成亂碼,如果直接使用中文不編碼,則會被格式化為GBK字串。
因為 ISAPI_Rewrite  默認是以 UTF-8 的編碼接收的。
解決方案是

翻了手冊,發現有一個配置參數可以解決該問題:

nounicode|NU

If NU flag is set, transformation from Unicode to UTF-8 will not take place and all Unicode characters remain encoded in %xx format.
nounicode|NU

如果標誌設置,從Unicode轉換為UTF-8不會發生,所有的Unicode字元編碼為%xx的保持格式


在你的RewriteRule 規則後臺添加 NU 即可恢復正常。

關於ISAPI_Rewrite中文變亂碼解決方法,無論何種情況,統一解決思想:

1
、在傳輸URL時,將中文進行urlencode,這樣是沒錯的。

2
、如果是ISAPI_Rewrite 3.x 只需增加 NU 參數即可。

配置舉例:

傳遞的URL地址:

http://tech.cncms.com/search-%C6%BB%B9%FB.html

相應的RewriteRule

RewriteRule ^/search-(.*)\.html$ /search\.do\?keyword=$1 [QSA,NU,PT,L]

最後,

無論使用哪家的產品,多看看產品手冊是沒錯的,一般問題與使用方法在手冊中都有完整的講解。比如這次的 ISAPI_Rewrite 就是一個很好的說明。

Google Maps API 申請方式變更


簡介:近日Google已變更其Maps API的申請方式,改由所謂的「APIs Console」進行所有API的管理。
  近日Google已變更其Maps API申請,若您現在透過早先的方法申請API Key應該會得到底下的訊息畫面。

Google不再提供先前的申請API Key方式
  大意是Google不再提供該種方式申請API Key ,而是改由所謂的「APIs Console」進行所有API的管理。
  在Google Maps API 的部份,官方網站目前是建議使用新版本(v3)的API 進行開發,若您仍希望繼續使用v2 的版本進行開發,您可能需要進行部份設定的修改,底下是設定的流程:
  1.使用Google帳號登入APIs Console https://code.google.com/apis/console),並將Google Maps API v2的選項打開,如下圖所示:

Google Maps API v2設置
  2.依據您的需求產生對應的Google Maps API Key ,若您是要繼續採用v2 版本的方式使用Google Maps API ,請選擇「Create new Browser Key」,之後將產生的Key 依據過去的方式填入對應的位置即可。

注意V2版本對應的選項
  需要注意的是:
  1.依目前觀察,已經在使用中的Google Maps API Key 是可以繼續使用,並不會因為產生Key 的方式改變而有所變更。
  2.新的方式會統計並限制使用量(目前是限制每天25,000 次查詢),若超過用量則需給付相關費用才可繼續使用。

2012年1月25日 星期三

IIS7 0x80070020 錯誤

IIS7 錯誤:錯誤代碼:「0x80070020」
會發生這錯誤是因為電腦有其他應用程式佔用到80Port
例如:Skype
將佔用的應用程式或是服務關掉就可以了