2011年1月26日 星期三

windows 2003 smc.exe ntdll.dll error

windows 2003
symantec endpoint protection 11 (簡稱:SEP)
失敗的應用程式 Smc.exe,版本 11.0.780.980,失敗的模組 ntdll.dll,版本 5.2.3790.4455,錯誤位址 0x0003801f。
--
奇怪的問題,是被 hacked 到 ntdll.dll 崩潰所造成?
結果 SEP 自動對外封鎖,造成 service (iis..等)都停擺;真是嚴重問題和雪上加霜
--
不知道哪有解方!?

2011年1月21日 星期五

DATAGRIDVIEW載入DBF檔

DBF檔請先匯出成dbase IV 格式


Dim cnn As OleDb.OleDbConnection
cnn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\POLLYPRO\DATA\NSAMPLE;Extended Properties=DBASE IV;")
Dim da As New OleDbDataAdapter("Select * From test.DBF", cnn)
Dim ds As New DataSet
da.Fill(ds)
GridView1.DataSource = ds.Tables(0)

2011年1月19日 星期三

win 7,windows 2008 開防火牆 port

在win7,windows 2008 的內建防火牆和windows xp 有很大的不同和改變 !
有些剛換上win7的人,可能要找很久!!
底下為重點截取圖的步驟,只要按照1,2,3,4,5,6,7設定即可!
(1)
(2)
(3)
(4)
(5)
(6)
(7)

installshield 2010 無法正常在 win7 封裝

不知道有沒有人在win7試過 installshield 2010 premier ?
在我的測試下,確實發生一些奇怪的問題;一些採用html+js+script的語法在win7都失效
只好轉向了,free NSIS 製作軟體安裝程式
用 NSIS 製作軟體安裝程式

2011年1月18日 星期二

SQL Server 中的 Pivot 語法

請參考來源
--
(1)
select dates, [0],[1],[2],[3],[4],[5],[6],[7], [8],[9],[10],[11],[12],[13],[14],[15], [16],[17],[18],[19],[20],[21],[22],[23]
from (select convert(varchar, createtime, 111) as dates, datepart(hh, createtime) as hours from votelog ) as cum
pivot (count(hours) for hours in ( [0],[1],[2],[3],[4],[5],[6],[7], [8],[9],[10],[11],[12],[13],[14],[15], [16],[17],[18],[19],[20],[21],[22],[23] )) as pv

(2)
select dates, [0],[1],[2],[3],[4],[5],[6],[7], [8],[9],[10],[11],[12],[13],[14],[15], [16],[17],[18],[19],[20],[21],[22],[23]
from (select convert(varchar, createtime, 111) as dates, datepart(hh, createtime) as hours, count(*) as counts from votelog group by convert(varchar, createtime, 111), datepart(hh, createtime) ) as cum
pivot (count(counts) for hours in ( [0],[1],[2],[3],[4],[5],[6],[7], [8],[9],[10],[11],[12],[13],[14],[15], [16],[17],[18],[19],[20],[21],[22],[23] )) as pv

sqlteam

增加SQL功力的地方

使用 WordPress 建立你的網站

官網
發現此套 WordPress 已建成熟了,且兼具自由與無價,你可以下載並且免費使用。
對發表產品和文章都更具全球性!
有空要來建置試試看

SQL Server 釋放記憶體方式

參考來源
--
此篇真是急救篇!!
他是使用MS-SQL 2005 , 而我公司是採用MS-SQL 2008;一樣有相同的問題!!
操作指令(適用2005,2008):
DBCC FREESYSTEMCACHE('all')
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE WITH NO_INFOMSGS

ms-sql 2000 只適用:
DBCC FREEPROCCACHE WITH NO_INFOMSGS

2011年1月16日 星期日

2011年1月15日 星期六

微軟-指令碼中心

微軟-指令碼中心
大略看了一下,很實用唷!!

觸發設計

假設聯繫人表中只有3個字段:
LinkManId:聯繫人編號,該字段為自動增長的。
LinkManName:聯繫人姓名。
LinkManNameLetter:聯繫人姓名對應的拼音字母。

那麼,可以使用以下語句來創建一個觸發器:



CREATE TRIGGER LinkMan_Insert --觸發器名為LinkMan_Insert

ON LinkMan --觸發器作用在LinkMan

AFTER INSERT --在插入數據之後觸發該觸發器

AS

BEGIN

--姓名變量

declare @LinkManName varchar(50)

--姓名的拼音

declare @LinkManName_spell varchar(50)

--臨時使用的變量

declare @tempStr varchar(10)

--用於循環計數的變量

declare @id int



--在插入的記錄中查詢聯繫的人姓名

select @LinkManName = LinkManName from inserted

--如果姓名為空,則把變量設為空字符串

if @LinkManName is null

set @LinkManName = ''



--初始化計數器

set @id = 1

--初始化姓名的拼音變量

set @LinkManName_spell = ''

--通過循環獲得姓名中的每一個字符

while @id <= LEN(@LinkManName)

begin

--從letter表中查到字符所對應的第一個拼音字母

select top 1 @tempStr = spell_simple from letter where letter = SUBSTRING(@LinkManName,@id,1)

--將拼音字母賦值給姓名的拼音變量

set @LinkManName_spell = @LinkManName_spell + @tempStr

--計數器加一

set @id = @id + 1

end



--在插入的記錄中添加字母字段的內容

update LinkMan set LinkManNameLetter = @LinkManName_spell

where LinkManId = @@IDENTITY



END

GO

sql,access,excel,odbc,dns 連線字串

一、SQL Server的聯接語句:
string sqlConnStr = "data source=(local);initial catalog=Northwind;persist security info=False;user id=sa;pwd=sa;workstation id=myWork;packet size=4096;Min Pool Size=0;Max Pool Size=200";
SqlConnection sqlConn = new SqlConnection(sqlConnStr);

其中:
「data source」是數據庫服務器地址,可用IP或計算機名替換。
「initial catalog」是數據庫名。
「user id」登錄數據庫是用戶名。
「pwd」登錄數據庫的密碼。

二、Access數據庫的聯接語句:
string accConnStr = "provider=microsoft.jet.oledb.4.0;data source=C:\\Program Files\\Microsoft Office\\OFFICE11\\SAMPLES\\Northwind.mdb";
OleDbConnection accConn = new OleDbConnection(accConnStr);

三、帶密碼的Access數據庫的聯接語句:
string accConnStr = "provider=microsoft.jet.oledb.4.0;data source=C:\\Program Files\\Microsoft Office\\OFFICE11\\SAMPLES\\Northwind.mdb;Jet OLEDB:Database Password=123";
OleDbConnection accConn = new OleDbConnection(accConnStr);

四、Excel的聯接語句:
string xlsConnStr = "provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("Northwind.xls")+";Extended Properties='Excel 8.0;IMEX=1'";
OleDbConnection xlsConn = new OleDbConnection(xlsConnStr);
strSql = "select top 10 * from [訂單$]";
無論excel版本是什麼,在Extended Properties裡都要寫Excel 8.0,注意空格
HDR=yes:說明excel文件的第一行是列字,而不是數據。如果第一行也是數據的話,用HDR=no。默認值為yes
IMEX=1:就是將混合型的列轉換成文本列
注意查詢語句:工作表名要用[$]框起來

五、通過DNS聯接數據庫的方法
string odbcConnStr = "DSN=odbcNorthwind;Uid=sa;Pwd=sa;";
OdbcConnection odbcConn = new OdbcConnection(odbcConnStr);

六、通過文件odbc聯接數據庫的方法
string odbcConnStr1 = "FILEDSN="+Server.MapPath("odbcfile.dsn")+";Uid=sa;Pwd=sa;";
OdbcConnection odbcConn1 = new OdbcConnection(odbcConnStr1);



以下是示例:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Data.Odbc;



namespace test

{

///

/// conn 的摘要說明。

///


public class conn : System.Web.UI.Page

{

protected System.Web.UI.WebControls.DataGrid DataGrid2;

protected System.Web.UI.WebControls.DataGrid DataGrid3;

protected System.Web.UI.WebControls.DataGrid DataGrid4;

protected System.Web.UI.WebControls.DataGrid DataGrid5;

protected System.Web.UI.WebControls.DataGrid DataGrid6;

protected System.Web.UI.WebControls.DataGrid DataGrid1;



private void Page_Load(object sender, System.EventArgs e)

{

string strSql = "";

DataSet ds = new DataSet();



//Sql Server 數據庫的聯接方法

string sqlConnStr = "data source=(local);initial catalog=Northwind;persist security info=False;user id=sa;pwd=sa;workstation id=myWork;packet size=4096;Min Pool Size=0;Max Pool Size=200";

SqlConnection sqlConn = new SqlConnection(sqlConnStr);

strSql = "SELECT top 10 * FROM Products";

sqlConn.Open();

SqlDataAdapter sqlAdapter = new SqlDataAdapter(strSql,sqlConn);

sqlAdapter.Fill(ds,"sql");

sqlConn.Close();



this.DataGrid1.DataSource = ds.Tables["sql"].DefaultView;

this.DataGrid1.DataBind();



//Access數據庫的聯接方法(無密碼)

string accConnStr = "provider=microsoft.jet.oledb.4.0;data source=C:\\Program Files\\Microsoft Office\\OFFICE11\\SAMPLES\\Northwind.mdb";

OleDbConnection accConn = new OleDbConnection(accConnStr);

strSql = "select top 10 * from 訂單";



accConn.Open();

OleDbDataAdapter accAdapter = new OleDbDataAdapter(strSql,accConn);

ds = new DataSet();

accAdapter.Fill(ds,"acc");

accConn.Close();



this.DataGrid2.DataSource = ds.Tables["acc"].DefaultView;

this.DataGrid2.DataBind();



//Access數據庫的聯接方法(有密碼)

string accConnStr1 = "provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("Northwind.mdb")+";Jet OLEDB:Database Password=123";

OleDbConnection accConn1 = new OleDbConnection(accConnStr1);

strSql = "select top 10 * from 訂單";



accConn1.Open();

OleDbDataAdapter accAdapter1 = new OleDbDataAdapter(strSql,accConn1);

ds = new DataSet();

accAdapter1.Fill(ds,"acc1");

accConn1.Close();



this.DataGrid3.DataSource = ds.Tables["acc1"].DefaultView;

this.DataGrid3.DataBind();



//Excel的聯接方法

string xlsConnStr = "provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("Northwind.xls")+";Extended Properties='Excel 8.0;IMEX=1'";

//無論excel版本是什麼,在Extended Properties裡都要寫Excel 8.0,注意空格

//HDR=yes:說明excel文件的第一行是列字,而不是數據。如果第一行也是數據的話,用HDR=no。默認值為yes

//IMEX=1:就是將混合型的列轉換成文本列

OleDbConnection xlsConn = new OleDbConnection(xlsConnStr);

//注意查詢語句:工作表名要用[$]框起來

strSql = "select top 10 * from [訂單$]";



xlsConn.Open();

OleDbDataAdapter xlsAdapter = new OleDbDataAdapter(strSql,xlsConn);

ds = new DataSet();

xlsAdapter.Fill(ds,"xls");

xlsConn.Close();



this.DataGrid4.DataSource = ds.Tables["xls"].DefaultView;

this.DataGrid4.DataBind();





//通過DNS聯接數據庫的方法

string odbcConnStr = "DSN=odbcNorthwind;Uid=sa;Pwd=sa;";

OdbcConnection odbcConn = new OdbcConnection(odbcConnStr);

strSql = "SELECT top 10 * FROM Products";



odbcConn.Open();

OdbcDataAdapter odbcAdapter = new OdbcDataAdapter(strSql,odbcConn);

ds = new DataSet();

odbcAdapter.Fill(ds,"odbc");

odbcConn.Close();



this.DataGrid5.DataSource = ds.Tables["odbc"].DefaultView;

this.DataGrid5.DataBind();





//通過文件odbc聯接數據庫的方法

string odbcConnStr1 = "FILEDSN="+Server.MapPath("odbcfile.dsn")+";Uid=sa;Pwd=sa;";

OdbcConnection odbcConn1 = new OdbcConnection(odbcConnStr1);

strSql = "SELECT top 10 * FROM Products";



odbcConn1.Open();

OdbcDataAdapter odbcAdapter1 = new OdbcDataAdapter(strSql,odbcConn1);

ds = new DataSet();

odbcAdapter1.Fill(ds,"odbc1");

odbcConn1.Close();



this.DataGrid6.DataSource = ds.Tables["odbc1"].DefaultView;

this.DataGrid6.DataBind();

}
}
}

讀取 excel 表名和欄位

///
/// 獲取EXCEL的表 表名字列
///

/// Excel文件 /// 數據表
public static DataTable GetExcelTableName(string p_ExcelFile)
{
try
{
if (System.IO.File.Exists(p_ExcelFile))
{
OleDbConnection _ExcelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + p_ExcelFile);
_ExcelConn.Open();
DataTable _Table = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
_ExcelConn.Close();
return _Table;
}
return null;
}
catch
{
return null;
}
}

///
/// 獲取Excel的列名
///

/// 文件 /// 表名 ///
public static DataTable GetExcelColumnName(string p_ExcelFile, string p_Table)
{
try
{
if (System.IO.File.Exists(p_ExcelFile))
{
OleDbConnection _ExcelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + p_ExcelFile);
_ExcelConn.Open();
DataTable _ValueColumn = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[] { null, null, p_Table, null });
_ExcelConn.Close();
return _ValueColumn;
}
return null;
}
catch
{
return null;
}
}

獲取表名和列名...

小紅傘會影響 win7 ,造成無法關機和讀取硬碟頻繁

一向在winxp 都是喜歡使用小紅傘
至從win7後,還是很肯定的安裝上小紅傘
卻發生一些困擾和疑問:
1.cpu 風散 --到win7 桌面後是靜止不動的(本項待確認..)
2.無法重新開機,或關機 (至更新 framework 4.0 後)
--
當移除小紅傘 Avira AntiVir Personal 後,竟能順利開關機且cpu風散也很正常了
最後來是選回:avg

---
2011/1/17 修正:cpu 風散和小紅傘無關!!

2011年1月14日 星期五

使用命令行啟動、暫停和停止SQL Server服務

命令如下:
啟動SQL Server
NET START MSSQLSERVER
暫停SQL Server
NET PAUSE MSSQLSERVER
重新啟動暫停的SQL Server
NET CONTINUE MSSQLSERVER
停止SQL Server
NET STOP MSSQLSERVER

講解無法打開用戶默認數據庫的解決方法

無法打開用戶默認數據庫,登錄失敗,這也是SQL Server使用者熟悉的問題之一。在使用企業管理器、查詢分析器、各類工具和應用軟件的時候,只要關係到連接SQL Server數據庫的時候,都有可能會碰到此問題,引起此錯誤發生的原因比較多,下面我們就來詳細分析引起此問題的原因以及解決辦法。


一、原因

登錄帳戶的默認數據庫被刪除。



二、解決方法:

(一)、使用管理員帳戶修改此帳戶的默認數據庫

1、打開企業管理器,展開服務器組,然後展開服務器

2. 展開"安全性",展開登錄,右擊相應的登錄帳戶,從彈出的菜單中選擇,屬性

3、重新選擇此登錄帳戶的默認數據庫

(二)、若沒有其他管理員登錄帳戶,無法在企業管理器裡修改,使用isql命令行工具

isql /U"sa" /P"sa的密碼" /d"master" /Q"exec sp_defaultdb N'sa', N'master'"

如果使用Windows驗證方式,使用如下命令行,將默認數據庫改成非丟失的數據庫:

isql /E /d"master" /Q"exec sp_defaultdb N'BUILTIN\Administrators', N'master'"





(2)由於改變了系統密碼導致SQLSErver無法啟動



解決辦法是:

點擊運行,鍵入services.msc,打開服務程序,找到SQLSERVER項目,選擇屬性項之二-『登錄』,把登錄密碼改為操作系統Administrator帳戶登錄密碼,重新啟動SQLSErver,即可正常啟動。



SQL Server 2005

在 SQL Server 2005 中,可以使用 sqlcmd 實用程序更改默認數據庫。為此,請按照下列步驟操作:◆1. 單擊「開始」,單擊「運行」,鍵入 cmd,然後按 Enter。

◆2. 根據 SQL Server 登錄使用的身份驗證種類,請使用以下方法之一:‧ 如果 SQL Server 登錄使用 Microsoft Windows 身份驗證連接到該實例,請在命令提示符處鍵入以下內容,然後按 Enter:

sqlcmd –E -S InstanceName –d master

‧ 如果 SQL Server 登錄使用 SQL Server 身份驗證連接到該實例,請在命令提示符處鍵入以下內容,然後按 Enter:

sqlcmd -S InstanceName -d master -U SQLLogin -P Password

注意:InstanceName 是要連接到的 SQL Server 2005 實例的名稱的佔位符。SQLLogin 是已刪除其默認數據庫的 SQL Server 登錄的佔位符。Password 是 SQL Server 登錄密碼的佔位符。

◆3. 在 sqlcmd 提示符處,鍵入以下內容,然後按 Enter:

Alter LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName

注意:AvailDBName 是可由實例中 SQL Server 登錄訪問的現有數據庫的名稱的佔位符。

◆4. 在 sqlcmd 提示符處,鍵入 GO,然後按 Enter。

用SQLCMD命令行工具執行SQL查詢

該命令運行在命令提示符下,且必須安裝了SQLServer客戶端工具。
注意參數區分大小寫。

用法: Sqlcmd 參數
[-U 登錄 ID]
[-P 密碼]
[-S 服務器]
[-H 主機名]
[-E 可信連接]
[-d 使用數據庫名稱]
[-l 登錄超時值]
[-t 查詢超時值]
[-h 標題]
[-s 列分隔符]
[-w 屏幕寬度]
[-a 數據包大小]
[-e 回顯輸入]
[-I 允許帶引號的標識符]
[-c 命令結束]
[-L[c] 列出服務器[清除輸出]]
[-q "命令行查詢"]
[-Q "命令行查詢" 並退出]
[-m 錯誤級別]
[-V 嚴重級別]
[-W 刪除尾隨空格]
[-u unicode 輸出]
[-r[0|1] 發送到 stderr 的消息]
[-i 輸入文件]
[-o 輸出文件]
[-z 新密碼]
[-f <代碼頁> | i:<代碼頁>[,o:<代碼頁>]]
[-Z 新建密碼並退出]
[-k[1|2] 刪除[替換]控制字符]
[-y 可變長度類型顯示寬度]
[-Y 固定長度類型顯示寬度]
[-p[1] 打印統計信息[冒號格式]]
[-R 使用客戶端區域設置]
[-b 出錯時中止批處理]
[-v 變量 = "值"...]
[-A 專用管理連接]
[-X[1] 禁用命令、啟動腳本、環境變量[並退出]]
[-x 禁用變量情況]
[-? 顯示語法摘要]

下面是一個執行sql語句文件進行創建數據庫、創建表、輸入測試數據的批處理。


「::」是批處理文件的一種註釋語法,由兩個半角英文冒號組成
「echo」是輸出字符串到屏幕
「@echo off」是關閉「執行時輸出命令語句到屏幕」
其他說明請看「::」後面的註釋

@echo off
echo ************** 執行SQL數據庫環境配置 ****************
echo.
echo _____________________________________________________
echo ------------------ 啟動SQL2005服務 ------------------
::如果沒有啟動sql服務,會先啟動sql服務。「$」後面的是數據庫實例名
net start mssql$sql2005
echo _____________________________________________________
echo.
echo _____________________________________________________
echo -------------- 執行T-SQL語句文件設置數據庫 ----------
:: 執行T-SQL語句文件請按照下面的格式寫

:: 第一種執行方式
:: 使用了Windows信任連接執行,
:: 「".\sql2005"」是「服務器\實例名」
:: 「"bbsDB_T-SQL\上機2.sql"」是輸入的SQL語句腳本文件存放物理路徑,可以是絕對路徑或相對本批處理文件路徑
sqlcmd -S ".\sql2005" -i "bbsDB_T-SQL\上機2.sql"

:: 第二種執行方式
:: 使用了SqlServer賬戶連接執行
:: 「".\sql2005"」是「服務器\實例名」
:: 「-U」後面的「sqlAdminName」是SQLSqlServer賬戶
:: 「-P」後面的「sqlAdminPwd」 是SQLSqlServer賬戶的密碼
:: 「"bbsDB_T-SQL\上機2.sql"」是輸入的SQL語句腳本文件存放物理路徑,可以是絕對路徑或相對本批處理文件路徑
sqlcmd -U sqlAdminName -P sqlAdminPwd -S ".\sql2005" -i "bbsDB_T-SQL\上機2.sql"
echo.
echo 任務執行完畢
:: 最後給個暫停命令,便於檢查是否出錯,不加的話,上面的執行完後不管是否出錯都會自動退出
pause

2011年1月13日 星期四

pause and restart a thread

Imports System.Threading

Private m_Thread as Thread

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Make a new counter object.
Dim new_counter As New Counter(Me)

' Make the thread to run the object's Run method.
m_Thread = New Thread(AddressOf new_counter.Run)

' Make this a background thread so it automatically
' ends when the form's thread ends.
m_Thread.IsBackground = True
m_thread.Start
Button1.Enabled = False
Button2.Enabled = True
End Sub

Private Sub Button1_Click(ByVal sender as Object, ByVal e As System.EventArgs) Handles Button1.Click
If (m_Thread.ThreadState And ThreadState.Unstarted) <> _
0 Then
' The thread has never been started. Start it.
m_Thread.Start()
Else
' The thread is paused. Resume it.
m_Thread.Resume()
End If

Button1.Enabled = True
Button2.Enabled = False
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' Suspend the thread.
Debug.WriteLine("Suspending thread")
m_Thread.Suspend()

Button1.Enabled = False
Button2.Enabled = True
End Sub

multi-threaded application using VB.NET

When a call is made to the Abort method to destroy a thread, the common language runtime(CLR) throws a ThreadAbortException. ThreadAbortException is a special exception that can be caught, but it will automatically be raised again at the end of the catch block. When this exception is raised, the runtime executes all the finally blocks before killing the thread. Since the thread can do an unbounded computation in the finally blocks, you must call the Join method to guarantee that the thread has died. Join is a blocking call that does not return until the thread actually stops executing.

詳細內容請參考來源:
來源

Microsoft .NET Framework SDK

發現這站,真是詳細唷!! 值得參考收藏
Microsoft .NET Framework SDK

Reading Outlook Contacts (*.WAB)

net 要怎讀取 *.WAB 通訊錄?
不管用net或vb6開發都一樣,只要掛入 Microsoft.Office.Interop.Outlook
即可達到,至於該怎作;底下連結可參考:
Reading Outlook Contacts in VB.NET

2011年1月12日 星期三

free printer to pdf for win7

當一個RD , 又遇到要開始製作報表或套印時;最須要的就是印表機虛擬器了!!
目前個人選用:doPDF doPDF free PDF converter

2011/12/5 修訂:
PDF 轉檔程式 - 免費使用 doPDF 轉換為 PDF 文件

 

2011年1月11日 星期二

win7 的telnet 不見了!?

win7 的 telnet 已不再包裝內建了!!
當要使用這簡易又實用的telnet,就要自己手動加入!!
操作方式:
因此要先對Windows 7 做開啟「telnet」指令的動作,如下
(1) 開啟「控制台」
(2) 在「程式集」項目下,點選「解除安裝程式」
(3) 點選左側「開啟或關閉Windows功能」
(4) 對「Telnet 用戶端」打勾
(5) 此時至「命令提示字元」輸入「telnet」指令就有作用了,這樣就大功告成

Free Open Source UML Tools

UML 對系統分析和程式設計師,是相當重要的一項工具;更是不可欠缺的參考研究!!
我喜歡用:StarUML 這套,簡單且易用支援性高!!

另外,也有他套UML ; 請參考 Free Open Source UML Tools
此處的介紹

Windows 7 解決方案中心

微軟這次這個做得不錯唷,對作業系統有問題的;可至此網址來找到自己相關的問題唷!!
Windows 7 解決方案中心 - 使用技巧,常見問題,下載以及更多幫助

2011年1月4日 星期二

存取網路磁碟機

想透過網頁存取網路磁碟機的方式可分成兩大類:
一、 Client端:
利用 FileSystemObject物件對磁碟機(包括本機磁碟與網路磁碟在內)進行存取,參考資料如下:
1. 使用 FileSystemObject存取檔案

2. JavaScript中利用 ActiveXObject來創建 FileSystemObject操作文件:大陸網站

二、 Server端:
在網路上有許多文章都在討論有關〔存取網路磁碟機〕的問題,測試過幾種方法,介紹如下:
1. 透過 net use指令

先在A電腦(IP為 192.168.0.1)中,建立一共用資料夾(共用名稱為B$),設定使用者 poi(密碼為 ghj),可以透過網路存取B$資料夾;執行 IIS所在的電腦稱為C電腦。

Imports System.Diagnostics

Dim process As Process = New Process()
Try
Dim server, sharename, password, username

server = "192.168.0.1"
sharename = "B$"
username = "poi"
password = "ghj"

process.StartInfo.FileName = "net.exe"
process.StartInfo.Arguments = "use \\" + server + "\" + sharename + " " + password + " /user:" + username
process.StartInfo.CreateNoWindow = True
process.StartInfo.UseShellExecute = False
'C電腦透過 net use建立與A電腦的連線
process.Start()
'顯示 net use的語法
Response.Write(process.StartInfo.FileName + " " + process.StartInfo.Arguments + "
")

process.WaitForExit()

'透過「通用命名慣例」(UNC,Universal Naming Convention) 名稱存取資源。
'UNC命名是由 \\主機名稱或 IP Address\分享路徑\檔案路徑名稱(包含檔名在內) 組成。
'將檔案 1.txt從A電腦的共用資料夾B$拷貝至C電腦的D磁碟機中
Response.Write("Start Copy File.....
")
System.IO.File.Copy("\\" + server + "\" + sharename + "\1.txt", "d:\1.txt", True)
Response.Write("End Copy File.....
")

'切斷連線
process.StartInfo.Arguments = "use \\" + server + "\" + sharename + " /delete"
process.Start()

process.Close()
Catch ex As Exception
Response.Write("in FileCopy Exception:" + ex.Message)
Finally
process.Dispose()
End Try

將 Windows Search 移除

電腦開著沒動,可是一直看著HD燈猛閃;還以為被駭了..
追蹤後,發現工作管理員內 searchindexer.exe 一直吃著資源不放
只好將它移除了,這工具實在不是個好的幫手
[移除方式]
1.在服務內找到:
Windows Search <---停用
2.到:
c:\windows\$NtUninstallKB940157$\spuninst\spuninst.exe <--執行,移除
3.重開機

複製 遠端(網路芳鄰) 內的資料夾

使用 My.Computer.FileSystem.CopyDirectory("\\192.168.XXX.XXX\XXX", "c:\XXX") 是可以的
前提 192.168.XXX.XXX 你要複製的資料夾 必須是開啟共用資料夾,並你本機必須能夠登入 192.168.XXX.XXX

DataGridView多行刪除方法

Dim count As Integer = DataGridView1.SelectedRows.Count
For i As Integer = count - 1 To 0 Step -1
DataGridView1.Rows.Remove(DataGridView1.SelectedRows(i))
Next

列出資料夾的檔案

'宣告引用
Imports System.IO

Dim file As String
Me.ListBox1.Items.Clear()

'WINDIR請改為實際路徑如("D:\123\"),如果須指定搜尋特殊字如JPG ("D:\123\","*.JPG")
Dim files() As String = Directory.GetFiles(winDir)

For Each file In files
Me.ListBox1.Items.Add(file)
Next

微軟免費TTS 電腦語音宣告

請先到微軟網站下載 SDK(Speech SDK 5.1) 與 語音包(SpeechSDK51LangPack.exe)
Speech SDK 5.1

*再來請加入參考 Microsoft Speech Object Library,不然使用時會出現 SpeechLib.SpVoice未定義
(專案 > WindowsApplication1專案屬性 > 參考 > 加入 >COM > 勾選 Microsoft Speech Object Library


*撰寫程式
(建立一個TEXT元件與按鍵)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyVoice As New SpeechLib.SpVoice
Dim strData As String
strData = StrConv(TextBox1.Text, VbStrConv.SimplifiedChinese, 2052) '將繁體字轉換為簡體字並存為STRDATA的字串中
MyVoice.Speak(strData) '輸出字串的語音
End Sub

關閉螢幕

Const WM_SYSCOMMAND = &H112&
Const SC_MONITORPOWER = &HF170&

' VB6 宣告之 Long 得改成 Int32 (Integer)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Int32)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SendMessage(Me.Handle.ToInt32, WM_SYSCOMMAND, SC_MONITORPOWER, 1&) ' 關閉螢幕
Sleep(10000) '暫停10秒
SendMessage(Me.Handle.ToInt32, WM_SYSCOMMAND, SC_MONITORPOWER, -1&) '啟動螢幕
End Sub

SLEEP 暫停功能

暫停副含式 以1毫秒為單位
Private Sub Sleep(ByVal t As Single)
Dim start, finish As Double

start = Microsoft.VisualBasic.DateAndTime.Timer
finish = start + t * 0.001
Do
My.Application.DoEvents()
Loop Until Microsoft.VisualBasic.DateAndTime.Timer > finish

End Sub


可利用呼叫API方式會更方便使用SLEEP
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Int32)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Sleep(10000) '暫停10秒
End Sub

滑鼠右鍵出現MENU

1、建立 contextMenuStrip 物件。

2、於適當位置加入呼叫

Dim MOUSEPOINT As Point = MousePosition '取得滑鼠位置
Me.ContextMenuStrip1.Show( MOUSEPOINT ) '呼叫contextMenuStrip

將字串轉成時間日期

Dim TTT As String
TTT = "2010/11/5 上午 09:00"
TextBox.Text = CDate(TTT).Minute '取出字串中 分鐘

PING的功能

目前.NET裡面PING的方法有2~3種,但同一的致命傷就是當對方IP或PORT未開通時,將會導致程式卡住或停頓,這樣將嚴重影響到其他程序的進行!

在比較過後的結論是

使用 My.Computer.Network.Ping的方法與搭配SLEEP(500)暫停的功能,只會影響1.5~2秒,
使用 PINGSEND.Send的方法與搭配SLEEP(500)暫停的功能,將會影響7~8秒,所以建議還是使用MY空間


測試範例
'Dim siteResponds As Boolean
'TextBox1.Text = TextBox1.Text & Now & vbCrLf
'siteResponds = My.Computer.Network.Ping("127.0.0.1")

'Sleep(500)


'TextBox1.Text = TextBox1.Text & Now & siteResponds
'Timer1.Enabled = False

取得電腦基本訊息(含偵測網路是否有通)

'網絡狀況
If My.Computer.Network.Ping("172.18.48.215") Then
Label2.Text = "暢通"
Else
Label2.Text = "不通"
End If
'機器名稱
Label3.Text = Environment.MachineName
'OS名稱
Label5.Text = My.Computer.Info.OSFullName
'Symantec病毒碼日期
Label10.Text = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\SharedDefs", "DEFWATCH_10", Nothing), 12), 8)
'Inter Explorer版本
Label11.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "Version", Nothing)
'CPU
Label12.Text = Microsoft.VisualBasic.Trim(My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString", Nothing))
'主板
Label14.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System", "SystemBiosVersion", Nothing).ToString
'鼠標
Label16.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\5\PointerController\0\PointerPeripheral\0", "Identifier", Nothing)
'顯卡
Label21.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000", "DriverDesc", Nothing)
'登入人員
Label23.Text = Environment.UserName
'Broker是自動分配還是手工分配
Label26.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\OOERP\Broker", "Enabled", Nothing).ToString
'總內存
Label28.Text = Str(My.Computer.Info.TotalPhysicalMemory / 1000000) & "M"
'emax.exe版本
Label29.Text = My.Computer.FileSystem.GetFileInfo("C:\emax\application\emax.exe").LastWriteTime.ToString
'broker server
Label30.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\OOERP\AutoUpdateParams", "IP", Nothing).ToString
'OS ServicePack
Label33.Text = Environment.OSVersion.ServicePack.ToString
'系統時間
Label35.Text = My.Computer.Clock.LocalTime.ToString
'C空間和剩餘空間
Label36.Text = "C:盤總空間:" & Int(My.Computer.FileSystem.GetDriveInfo("C:").TotalSize / 1000 / 1000 / 1000) & "G" & " 可用空間:" & Int(My.Computer.FileSystem.GetDriveInfo("C:").TotalFreeSpace / 1000 / 1000 / 1000) & "G"
Label37.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\OOERP\CodePage", "TRANSFERTABLEPATH", Nothing).ToString
Label38.Text = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\OOERP\Broker", "IP", Nothing).ToString

1.電腦名稱:
Environment.MachineName

2.ip地址:
System.Net.Dns.GetHostAddresses()

3.mac地址:
System.Net.NetworkInformation.NetworkInterface.GetPhysicalAddress()

4.ie版本:
使用 FileVersionInfo.GetVersionInfo() 傳入 IE 的執行檔路徑,取得 FileVersionInfo 物件 .

5.os類別版本:
Environment.OSVersion

6.某個文件特定修改日期:
File.GetLastWriteTime()

7.cpu大小型號:
用 Windows API...

8.內存大小型號:
內存是什麼?記憶體嗎?記憶體可用:My.ComputerInfo.TotalPhysicalMemory
型號,可能要用 Windows API 了,或者可參考 DDK 有沒有,內建函式庫應該沒有 .

9.硬盤容量:
Microsoft.VisualBasic.FileIO.FileSystem.GetDriveInfo() 取得 DriveInfo,再用 TotalSize 取得

10.主板型號:
要用 Windows API ,或者可參考 DDK 有沒有,內建函式庫應該沒有 .

My命名空間之My.Computer

My.Computer可能是My命名空間中最有趣的部分了,這一部分封裝了大量訪問系統和硬件信息的功能,操作起來比直接使用.NET Framework或Windows API都方便得多。My.Computer中有很多對象,下面我們分別來介紹。

My.Computer.Audio

Audio對像提供了播放音頻的功能,它既可以從wav等文件播放,也可以從音頻數據流來播放,就是說你可以用它輕鬆播放儲存在資源文件中或者數據庫中的音頻。播放時還可以指定後台播放或等待結束等多種設置。結合My.Resources來使用,更顯得方便無窮。這是一個簡單的播放wav文件的例子:

My.Computer.Audio.Play("c:\ding.wav", AudioPlayMode.BackgroundLoop)


My.Computer.Clipboard

Clipboard對像提供了以強類型方式讀寫剪貼板的功能,比Windows.Forms裡面的剪貼板更加好用。使用Clipboard對象可以直接從剪貼板讀寫音頻、圖像、文本甚至我的電腦中的文件拖放信息。此外,由VB6升級的項目現在將直接使用My.Computer.Clipboard對像升級以前的Clipboard對象,這將解決VB.NET不能升級原先剪貼板功能的缺陷。下面的例子將文本框內的內容複製到剪貼板:

My.Computer.Clipboard.SetText(TextBox1.Text)

My.Computer.Clock

Clock對象是一個獲取時間的工具,它可以直接獲取當地時間、中時區的時間和從當時子時開始的毫秒計數。

My.Computer.FileSystem

這是微軟Visual Basic Team在My.Computer中傾注最多精力的對象,使用它可以充分改善文件操作的複雜程度。FileSystem對像提供了易於理解的操作方式。FileSystem對像中複製文件的方法不但只需要指定目標路徑,還可以幫助你建立目標目錄中不存在的級別。它還特別提供了CopyDirectory的功能,可以複製整個目錄!這正是目前.NET Framework缺乏的功能。同時FileSystem還能提供搜索上級目、子目錄或根目錄的功能,非常體貼。下面例子展示了如何在動畫演示下將文件放入回收站。

My.Computer.FileSystem.DeleteFile("c:\mybigfile.big", True, True)

FileSystem對像還提供了只用一行代碼就可以讀取文本文件內容,或者將所需內容寫入文本文件的功能,現在你不需要再用迷惑人的StreamReader、StreamWriter來讀寫文件了,還不用擔心資源釋放的問題。如下面的例子:

s = My.Computer.FileSystem.ReadAllText("c:\a.txt")

除了可以通過My訪問以外,通過System.IO.FileSystem類也可以完成FileSystem對象的大多數功能,這種方式似乎更適合於使用C#或C++的開發者。

My.Computer.Info

看名字就知道了,這個對象的屬性都是系統信息。如果你想獲得本機物理內存或虛擬內存的總數,剩餘量、操作系統名稱、當前用戶名、本機安裝的文化設置等等,都可以輕鬆使用Info對象,它讓你對應用程序所在的系統瞭如指掌。

My.Computer.Keyboard和My.Computer.Mouse

通過這兩個對象,你可以快速獲得用戶鍵盤的信息,如大寫鎖定、數字鍵盤鎖定等是否打開,以及鼠標有幾個按鍵,是否配備滾輪等。如果你希望你的應用程序能夠做到最體貼用戶,那這些信息是少不了了。下面例子演示獲取用戶的鼠標左右鍵功能是否交換(這樣你就可以知道用戶是不是左撇子,從而提供更體貼的界面,多爽)

Dim f As Boolean = My.Computer.Mouse.ButtonsSwapped

My.Computer.Name

不用多說,這就是本機操作系統安裝時輸入的名稱

My.Computer.Network

這個Network對像充分簡化了最常用的網絡任務,只需要一行代碼,就可以Ping一個地址,或者檢測網絡是否接通。還能用一行代碼下載或上傳文件。比如這個例子就完成了一個下載文件的任務:

If My.Computer.Network.IsAvailable Then
My.Computer.Network.DownloadFile("http://abc.com/x.zip", _
"C:\download")
End If

My.Computer.Port

提供了用一行代碼打開本機串口的功能,還能立刻綁定一個事件監視串口的變化。現在串口編程出奇的簡單,再也不需要MSComm控件了。

My.Computer.Printers

這個Printers對像能夠遍歷本機所安裝的所有打印機,還能找出默認的打印機。通過向默認打印機畫圖一樣的操作,就能開始打印了。這樣的操作會讓你想起VB6時代便利而簡潔的打印操作。下面的例子將在默認打印機上打印一個橢圓。從VB6升級項目時,原來的Printer對像將自動升級為My.Computer.Printers中的相關操作,升級的用戶可以更加放心了。

My.Computer.Printers.DefaultPrinter.DrawEllipse( _
New RectangleF(2, 2, 50, 150), 1)
My.Computer.Printers.DefaultPrinter.Print()

My.Computer.Registry

這個註冊表對象可比Microsoft.Win32空間中的那個版本簡單多了,他提供強類型的路徑支持,還能非常方便地讀寫註冊表。下面的例子是一段內置的代碼片斷,演示了如何判斷某一鍵值是否存在。

Dim exists As Boolean = True

Dim path As String = "Software\Microsoft\TestApp\1.0"

If My.Computer.Registry.CurrentUser.OpenSubKey(path) Is Nothing Then
exists = False
End If

My.Computer.Screen

Screen對象可以獲取屏幕的可視範圍,像素的位數等。比VB6的Screen對像更強的是,它現在支持兩個顯示器。


My.Computer.Registry 物件會提供存取登錄的屬性和方法。

'建立登錄機碼 (Registry Key) 並設定其值
My.Computer.Registry.CurrentUser.CreateSubKey("ApMyTestKey")
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\ApMyTestKey", "MyTestKeyValue", "This is a test value.")
'判斷登錄機碼是否存在值 (讀取登錄機碼的值)
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\ApMyTestKey", "MyTestKeyValue", Nothing) Is Nothing Then
MsgBox("Value does not exist.")
Else
'刪除登錄機碼
My.Computer.Registry.CurrentUser.DeleteSubKey("ApMyTestKey")
End If

2011年1月3日 星期一

w3wp.exe [3492]

這篇文章找好久了,總算看到些解決方式..
----
狀態:引發溢位
----
原文
----
w3wp.exe占内存CPU问题 WIN2003 IIS6.0假死现象解决方案

打开IIS 你就会看到应用程序池.默认只有一个应用程序池.你查看应用程序池的属性.会发现他的回收时间.默认多达.1740分钟.就是说.需要在1740分钟后才回收此应用程序池.如果在这个时间内.达到请求的最高限制.那么就会出现ASP假死的情况.这个就是大型网站出现假死的情况.反而.小型网站确不会出现这样的情况.因为他请求少.流量少.还没达到限制数量.

当然要看你的服务器上拉了多少个网站而定.以下是我的解决方法.

单个网站解决方法.;

(很简单.把应用程序池回收时间缩短到300-600分钟.其间回收过程中.需要占用一点CPU资源.没办法.为了稳定性.再把回收时间设为凌晨5点)

多网站解决方法.

我的服务器目前拉了70个网站左右.我新建六个应用程序池.把每个池回收时间缩小到300分钟.然后再分配每个池10个网站左右(这个分配是要求你的网站访问量所定)如果某个网站.访问量大.就单独给他一个程序池.但是这样做的后果就是需要大内存.一个池现在占用我120M内存左右.反正内存大.没关系.}'
多网站如何分配应用程序池??.打开IIS--查看你要分配的网站属性..查看主目录--在下面你就会看到应用程序池了.分配一个就行了.

以上是我的临床试验.服务器现在稳定的运行中.本来几乎一天就停一次.要我重起IIS才行.

在开始--程序--管理工具à信息服务管理器-à打开应用程序池IIS 你就会看到应用程序池.默认只有一个应用程序池.你查看应用程序池的属性.会发现他的回收时间.默认多达.1740分钟.就是说.需要在1740分钟后才回收此应用程序池.如果在这个时间内.达到请求的最高限制.那么就会出现ASP假死的情况.这个就是大型网站出现假死的情况.反而.小型网站确不会出现这样的情况.因为他请求少.流量少.还没达到限制数量.
解决方法:把应用程序池回收时间缩短到300-600分钟.其间回收过程中.需要占用一点CPU资源.没办法.为了稳定性.再把回收时间设为凌晨5点

WIN2003 IIS6.0假死现象的分析
不少朋友在做网络管理中遇到一些网站系统经常会出现一段时间网速很慢,直到不能进入系统.本人也为这个事情困惑了很久.后来经过几天的系统观察,对WIN2003系统的分析跟踪发现在是应用程序池的问题,后来设置了一下问题就解决了,现在提出供大家分析.

一大型网站出现WIN2003 IIS6.0假死现象的分析
. 关于一大型网站出现假死现象的分析(WIN2003 IIS6.0无故停止的问题)
系统环境:系统应用环境是:操作系统平台是Windows Server 2003
后台数据库是ORACLE9I
问题:系统采用(B/S结构)经常会出现一段时间网速很慢,直到不能进入系统。管理人员不得不重新启动机子,才能使系统正常工作。
分析:根据实地观察发现在运行 Windows Server 2003 的计算机上,默认的 ASP 辅助进程为 w3wp.exe。(w3wp.exe 为ASP.NET的进程)w3wp.exe 进程通常在 NETWORK SERVICE 帐户下运行,但可将它配置为在 SYSTEM SERVICE 或用户帐户下运行,w3wp.exe这个进程占用大量的CPU和内存,出现内存溢出,这时会出现ASP假死的情况也就是WIN2003 IIS6.0无故停止
Windows Server 2003 的计算机上的 ASP Web 应用程序W3wp.exe(多工作进程)将在访问www服务时候启动。通过IIS6.0新增的“应用程序池”可以对此进行调度,根据调换Web园的数量可以限定该池的工作进程数量,经过测试同属于一个池中的程序,服务器将在访问每个虚拟目录或站点时启动一个W3wp.exe进程。直至达到设置的Web园最大数量
根据站点的命中频率我们设置回收进程的时间,默认为20分钟,根据访问量具体限定
在站点内存耗费过大时及时回收内存,可以有效的避免溢出

解决w3wp.exe占用内存和CPU的问题(2003系统)

在2003系统IIS6下,经常出现w3wp.exe的内存占用不能及时释放和CPU占用居高不下的问题,从而导致服务器响应速度很慢。怎样才能找出是哪一个站点出问题呢?

首先给每个站点都建一个应用程序池,这样便于找出问题出在哪一个站点上!

接下来就简单了

1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid!

2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示什么“此脚本不能与 wscript 工作”,点击确定,接着会弹出一个对话框,是英文的,应该是提示你装一个什么来着,忘了,没关系,点确定就可以了。然后再次运行iisapp -a就可以了。这样就可以看到pid对应的应用程序池的名称了!

3、到iis中察看该应用程序池对应的网站,就可以了!然后真对站点排除错误!
(顺便说一下,如果运行后出现 error - no no results 这样的提示,说明你的站点没有开启或还没有被访问过!)


下面详细介绍一下 iisapp 的语法!
语法
iisapp [a/ AppPoolName | /p AppPoolID]

参数
/a AppPoolName

指定特定应用程序池的名称。(可选项)

/p AppPoolID

按 ID 号指定应用程序池。(可选项)

注释
• 如果未指定应用程序池名或 ID,则 iisapp 列出所有运行应用程序。

• 仅当使用 /s 时,才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。

• Iisext.vbs 执行 IIS 管理器中可用的相同操作。可使用任何一种工具管理 IIS 网站。

• 发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。

• 命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。

MS SQL T-SQL in 傳入參數

參考來源

想要再SQL or store procedure 內傳入 In 的參數呢 ?
declare @test varchar(200);
select @test='''report.itemNumber'',''report.project''';
^^^都是單引號喔!!!
exec ('SELECT TOP 1000 [OBJECTID]
,[ATTRIBUTENAME]
,[ATTRIBUTETYPE]
,[DELETED]
,[DESCRIPTION]
,[PERMISSION]
,[REQUIREDOPTION]
FROM [track].[dbo].[TATTRIBUTE]
where ATTRIBUTENAME in (' + @test+ ')');

網頁樣板

一些不錯免費的樣板,節省"思考和創意"的時間;對參考別人作品也是不錯的!!
-------------
1.webpage 網站網頁樣版模版設計團隊
2.Open Web Design
3.dotemplate
-------------

2011年1月2日 星期日

Serial Communication with VB.Net

Serial Communication with VB.Net

Corrado Cavalli's Internet Presence

xp iis Active Server Pages 錯誤 'ASP 0201'

1.一般要自己掛本機 asp / aspx 測寫時,會發生:
訊息:iis http 500 內部伺服器錯誤
先將IE 的設定值調整一下:(如圖)

2.在次使用IE瀏覽網頁,看詳細錯誤訊息;發現:
訊息:iis Active Server Pages 錯誤 'ASP 0201'

這因為windows xp 的註冊表被更動了權限,造成原本可以的;均無法使用!!
如圖:

2011年1月1日 星期六