2012年2月13日 星期一

小鐵板系統- win2008 + Cobain Backup 10 .....

話說我用 Cobain Backup 己一段時間, 好用的免費備份軟體, 功能實在又穩定, 操作也不會太難. 實在好用.  下載網址可以參考以下連結:

就在一次主機發生怪怪的情況下, 我重作了系統, 同時也利用機會將主機昇級, 由原來的 win2003昇級至  win2008 .
怪怪, 一昇上去, 掛上 Cobain Backup 10 , 原本可以跑的 備份Job 全部停工不動了.
測了好幾天就是找不出問題,  最後又是借助Google大神, 終於找出解答.
原解答網址如下:
原文內容如下:
--------------------------------------------------------------------------------------------------
I just upgraded to 10.1.1.816
Everything remained the same - but I installed a new Windows 7, 64 Bit.
I am running the task with "Run as ..." and a valid user name.
I set up the network drive with a drive letter. None of the following is working: W:\ nor file://192.168.1.10/bklead/
The task worked with XP and the same environment. Unfortunatly not anymore ... I get the err:
The source directory "file://192.168.1.10/bklead/" doesn't exist
Does anybody know how I could check why Cobian does not recognize the folder? I can access this folder with Windows Explorer or any other file manager - but Cobian does not.
Thanks for any hint. Patrik.
--------------------
Same problem here. Tried IP adres as well as servername. Both generate the same error.
UPDATE: I tried to login with the same name and password on the NAS. Still did not work.
Uninstalled: "run as a service" now it worked.
--------------------------------------------------------------------------------------------------
重點在最後一句, 換成中文的意思, 就是解除" 安裝成服務", 用應用程式的方式來執行就ok了,
原來  Cobain 的執行可分為兩種, 安裝成應用程式安裝成服務.

如果安裝成 服務的好處, 是win 開機後, 服務就自動啟用, 不用使用者作登入, 而安裝成應用程式時, 就須要使用者作登入後, Cobain才會啟動.

而不知何原因, win 2008 + Cobain Backup 10 的組合下, 如果安裝成服務時, Cobain Backup 就無法存取 網路資料 , 而如果是在應用程式模式時, 就是使用登入者帳號的權限來存取網路資料, 所以只要win 登入的使用者權限夠, 就可以正常的啟動這些Job.

以下為設定的cut 圖:


記得不要再自行利用新的身份重新登入, 因為也會有問題

















還好有找到解答, 分享出來, 讓有需要的人可以參考!

2012年1月30日 星期一

好神奇的 nort?? antivirus , 裝完後, 依 win 7 (64bits) 標準移除方式移除卻移不掉!


場景: win 7 (64 bits) 裝上 nort?? antivirus 後, 發現效果很不好, 後來想改用其它防毒軟體, 依一般理解, 至 win 7 控制台作移除, 卻發現怎麼移都移不掉.

後至網路上 google 一下, 發現要下載移除軟體  Nort??_Removal_Tool.exe 才能移除. 心想怎麼這麼麻煩, 不過還是上網去下載.

原想下載使用後應就可以移除, 結果下載後, 一執行該程式, 該程式就像沒有執行一樣, 連個劃面都沒有. 真神奇, 結果利用 工作管理員一看, 在[處理程序]內有看到 SynNR...., 但就是沒有反應, 原想要強制[結束程序] ,發現也無法結果, 弄到最後不得己, 只好重開機.

重開機後, 再來一次, 結果一樣. 這下子滿腦子問題, 怎麼跟網路上寫得都不一樣.

最後想說會不會win 7 是 64 bits 的關係, 就 啟用 [疑難排除相容性]--> 使用 winxp sp2模式 加上 [以系統管理者身份執行] 等兩個選項. 再執行該程式. 發現仍卡住.

心想大概沒辦法了, 就又重新重開機. 想說不要再測了.

開完機後, 又再執行了一下 winxp sp2模式又卡住, 想說,算了. 就這樣用吧.

用著用著, 約過了五分鐘, 奇怪的事發生了. 網路上所說的移除劃面就自己跑出來了.
心想趕快依網路上說的程序作一作, 看是否可以移掉這個奇怪的 除毒軟體.

結果就順利移除了. 至於是作了那一動才讓這個移除程式生效, 我至今仍一頭霧水.

提供給大家作參考.

或者有了解的人可以提供正解給我, 這樣我就可以更了解是如何移除的.!


2011年12月29日 星期四

如何合併同一個資料夾下的所有excel檔案內的工作表

於工作需要, 所以又硬著頭皮寫出以下的EXCEL VBA , 發現不錯用, 分享出來:
Private Sub Workbook_Open()

Call ClearWorkSheet
Call CopyWorkSheet


End Sub


Sub ClearWorkSheet()
Application.DisplayAlerts = False
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "首 頁" Then
  Ws.Delete
End If
Next
Application.DisplayAlerts = True
       
End Sub

Sub CopyWorkSheet()

Dim SRC  As Workbook
Dim DES  As Workbook
Dim WKS  As Worksheet
'Set SRC = Workbooks.Open(ActiveWorkbook.Path & "\HKG.xls")
Set DES = ThisWorkbook
Set WKS = ThisWorkbook.Worksheets(1)
'SRC.Activate
'SRC.Worksheets.Copy BEFORE:=DES.Worksheets(1)
'SRC.Worksheets(1).Copy BEFORE:=DES.Worksheets(1)

'SRC.Close

Set fso = CreateObject("Scripting.FileSystemObject")
    Dim strText As String
    Dim i As Integer
   
    Set flds = fso.GetFolder(ActiveWorkbook.Path).Files
    i = 1
   
    For Each f In flds
        If f.Name <> "TARGET.xls" Then
            Set SRC = Workbooks.Open(f.Path)
            SRC.Worksheets.Copy BEFORE:=DES.Worksheets(1)
            SRC.Close
    '            strText = strText & i & "." & f.Name & vbCrLf
        End If
           i = i + 1
    Next
       
End Sub

2011年12月21日 星期三

至崇右技術學院演講" VM workstation 虛擬主機入門及應用"的講義

請參考連結:
崇右演講vm部份

C#寫入SQL字串時, 須要注意的單引號的事

商業書信時常發現有一種寫法就是Ms.Wang's .

看起來很正常, 如果Ms.Wang's 出現在程式要將這個字串寫入SQL SERVER 時, 卻發現老是出錯,寫不進入.

經過檢查, 發現是因為  問題出現在單引號上, 這個單引號會造成SQL SERVER 在解析這些字串時出現錯誤, 因為SQL SERVER 本身就是利用單引號在解析字串, 結果字串內又含有單引號造成SQL SERVER 解析出錯.


例如:

String MyStr = " Hello, This is Ms.Wang's monther ";

String MySql = "Update MyTable set Message = '" + MyStr + "' ";

當我們執行這個 SQL script 時, 經由展開, 我們發現 MySql 的內容變成.

Update MyTable set Message  = ' Hello, This is Ms.Wang's monther '

有沒有發現 , 上面的這個SQL script 有三個單引號, 難怪 SQL SERVER 會出現錯誤.

這時改進的方法就是先將字串作檢查, 如果發現有使用到單引號, 就先作處理, 就是把一個單引號變成兩個, 這樣SQL SERVER 就知道, 這個是一個單引號, 而不是字串的結束符號.


String MySql = "Update MyTable set Message = '" + MyStr.Replace("'", "''") + "' ";

切記, 切記!!

2011年12月20日 星期二

差點讓我冒冷汗的 vs2005 unicode 問題.

由於VS2005 一直號稱沒有UNICODE 的問題, 所以我一直 對於VS2005 UNICODE 很放心的. 不料在作一次展示時. 卻發現 "堃", "浜"  等字, 寫入至 SQL SERVER 時出現 ??.

一開始以為  是 SQL SERVER 上該欄位沒有使用 NVARCHAR 的關係, 不料把欄位改成 NVARCHAR 後, 執行程式, 寫入上面兩個字時, 仍出現? .

於是我開始冒冷汗, 難道是我搞錯了嗎? 還好有Google 大神的幫忙, 最後才發現. 原來是在SQL SERVER 要寫入含有 上面提到的這些特別字時, 須要在 寫入字串的單引號前加入一個 N 字, 這樣這些字才不會變成亂碼寫入到資料庫.

例如:

UPDATE AA SET NAME = N'王堃浜'  <== 如果 少了N , 則寫入到SQL SERVER 的字仍會是亂碼.

真是........

如果是用 C#, 則可以參考下面寫法:


string MySql = "UPDATE  MYTABLE  SET ";
                    MySql += "   NAME = N'" + txtNAME.Text.Trim() + "' ";
                    MySql += "      WHERE   CODE = '" + txtNO.Text.Trim() + "'  ";

注意上面的例子, 在字串單引號前,記得要加N指明這個是UNICODE 的字串, 這樣就可以存入UNICODE 的字元到SQL SERVER 內.

2011年11月25日 星期五

Android學習筆記-GDD02 解題

package COM.TQC.GDD02;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class GDD02 extends Activity {
 public static final String PREF_NAME = "GDD02_PREF";
 public static final String key01 = "key01";
 public static final String key02 = "key02";
 public static final String key03 = "key03";

 // 加入以下的  constant
 public static final int  MODE_WORLD_WRITTABLE = 0;

 private EditText EditText01;
 private EditText EditText02;
 private EditText EditText03;

 // 多加入一個 button 宣告
 private Button bt;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
      // 取出所有元件 
EditText01 = (EditText) findViewById(R.id.editText1);
EditText02 = (EditText) findViewById(R.id.editText2);
EditText03 = (EditText) findViewById(R.id.editText3);
bt  = (Button) findViewById(R.id.button1);
// 由  SharedPreferencs 取出內容,
SharedPreferences st = getSharedPreferences(PREF_NAME,0);
String value01 = st.getString(key01, "");
String value02 = st.getString(key02, "");
String value03 = st.getString(key03, "");

// Assigne 至  EditText 內
EditText01.setText(value01);
EditText02.setText(value02);
EditText03.setText(value03);
       
// button 指定 OnClickListener
// 背下這個語法
bt.setOnClickListener(new Button.OnClickListener()
{
 // 沒有  @Override
 // 記得用  public void
 public void onClick(View v)
 {
  finish();
 }

}
);
      
    }

  
    // 記得用  @Override
    // 得要用  protected void
    // 同時要作 super.onStop();
    @Override
 protected void onStop() {
   
     super.onStop();
     SharedPreferences st = getSharedPreferences(PREF_NAME,MODE_WORLD_WRITTABLE);
   
     SharedPreferences.Editor editor = st.edit();
   
     editor.putString(key01, "" + EditText01.getText());
     editor.putString(key02, "" + EditText02.getText());
     editor.putString(key03, "" + EditText03.getText());
     editor.commit();
 }
}