Pages - Menu

2015年12月28日 星期一

SQL server Express 自動備份於NFS

自動備份的文章很多,請參考這篇
目前要備份的機器,由於已經有廠商在上面架了一台sql server2005,
而不知道密碼無法登入。
故自行安裝SQL server 2014 express,
基本的cmd指令
sqlcmd  -i D:\Kill\DB_BACKUP\backup.sql -o D:\Kill\DB_BACKUP\result.txt

記得存成『.cmd』,存成『.bat』會無法自動執行。

但由於此台電腦上有多台sqlserver,當你下sqlcmd時,不知道他會去執行哪個執行個體。

故需在前面加上連線的指令
sqlcmd -S 10.XX.XX.XX,1433 -U test -P test1234

合起來就變成

sqlcmd -S 10.XX.XX.XX,1433 -U test -P test1234  -i D:\Kill\DB_BACKUP\backup.sql -o D:\Kill\DB_BACKUP\result.txt

另外,如果要存在NFS上面,該資料夾的寫入權的使用者為 CCB/daimom
,需將服務內的 SQL Server (SQLEXPRESS) 內的 登入身份也同時更改成 CCB/daimom
才能夠將備份的檔案寫入到該資料夾。

2015年12月25日 星期五

LinqToExcel 出現 『輸入字串格式失效』

Excel匯入時會因為欄位格式而判斷錯誤,
尤其又有使用取代,將原本的文字更改為數字時,
更容易發生。
因資料庫的欄位是數字,所以如果Excel是字串的話,
很容易造成轉型失敗。
將數字的欄位格式,全部更改為『數字』。

MVC 發布到IIS的錯誤解決方式

vs 2015 發佈到IIS的錯誤

要發佈的時候一直出現錯誤訊息如下:


1.Web Deployment 工作失敗。((2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。)

(2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。
無法執行作業。請聯絡伺服器系統管理員,檢查授權和委派設定。
2.『Microsoft.ACE.OLEDB.12.0 提供者並未登錄到本機電腦上
3.『發布後原本的資料庫被移除』
4.『log4net無法執行』
5. Log資料夾權限沒設定
6.無法載入檔案或組件 'LinqToExcel' 或其相依性的其中之一。 試圖載入格式錯誤的程式。
7.Web Deployment在遠端電腦上處理要求失敗。

2015年12月11日 星期五

資料庫丟資料使用MSDTC的一堆怪問題

前因:
為了要有demo的資料,又不允許用亂數自己產生,
最後決定由現在正在跑得SPC系統撈資料過來到測試機的db上面。

但正在執行的系統是XP 資料庫是 sql server2005  express
測試機 是 server 2012 資料庫 sql server 2014 express

差距之大...要用鏡像也不能用

2015年12月8日 星期二

重灌筆電543

很久沒灌筆電了,接了之後才知道
WTF...沒win7驅動
這次的主角是sony VGN-CR13T
先抓 Driver Booster 來把能更新的驅動更新一下。
這是 IObit 所出的免費軟體,當然有一些限制。
但至少能夠解決大部分的驅動...

少部分熱鍵不能用再根據裝置特徵碼一個一個找了,
首先是讀卡機,好解決 小惡魔上面有人分享。
再來另一個,acpi/sny5001 這就真的不知道了是啥鬼了。
後來才知道 那是熱鍵相關..
最後要解決熱鍵不能用...筆電沒熱鍵就死一半了阿阿阿 
後來參考了這篇
據說要先安裝SSL → VCC → VPM 
SSL:Sony Shared Library 
VCC:VAIO Control Center 控制中心  
VPM:VAIO Power Management  電源管理 
到底能不能過呢...不知道  還在下載。
跟人住一起就是那網路有夠慢...還是cable



2015年11月25日 星期三

英文字典,幫助整篇閱讀原文的輔助工具(限Chrome)

在下的英文十分的破...單字認識的不多,常常都要依賴線上字典查詢,才有辦法看整篇的原文文章...
有在看的應該都知道如果整篇丟去翻譯,專有術語翻出來肯定掛...所以都用字典一個一個找
目前常駐的 有 
  1. Google Dictionary (by Google) 連結
  2. TJDict 連結
  3. ParrotTalks抄筆記連結(註:此連結包含小弟的邀請碼)
  4.  Google 翻譯 連結
以下大致講一下個人使用心得
1.Google Dictionary :眾所皆知 google出的,查詢單字滑鼠點兩下就好,但沒有KK音標可供查看,浮動視窗,有時候翻譯出來的會很奇怪...


2.TJDict:按下Ctrl跟滑鼠左鍵,會另外顯示一個視窗,有KK音標可以看,浮動視窗。


3.ParrotTalks:該有的都有,但優點是固定視窗,當看一整篇文章的時候好用多了,還能加入單字筆記,供日後記憶(不過小弟應該是用不上了)
4.Google  翻譯,跟 google Dictionary  比起來翻譯的字正確多了,也可以選擇看是要點兩下後直接顯示翻譯的內容,
或是跳出一個翻譯的按鈕按了之後才翻譯。

結論:以後單純查一兩個字應該還是使用google dictory Google 翻譯,但碰到一整篇文章的,乖乖用 parrottalk 比較好查詢。

2015年11月24日 星期二

Google app script從form送出後丟去新的sheet

摘要:Google app script從form送出後丟去新的sheet

逛到PTT的小說版,說需要自動使用google的表單再將資料轉成另一個sheet做紀錄。
以下為測試程式碼
幾點備忘事項
1.在試算表新增程式碼,並設定trigger,將form submit綁在myFunction上面。
2.Logger.log,可從檢視->log觀察此次執行的資料。
3.SpreadsheetApp.openById 從網址列取得試算表的ID。
4.換行為 \n
5.getRange從1開始,但轉成getValues是從0開始。


/**
 * A trigger-driven function that sends out calendar invitations and a
 * personalized Google Docs itinerary after a user responds to the form.
 *
 * @param {Object} e The event parameter for form submission to a spreadsheet;
 *     see https://developers.google.com/apps-script/understanding_events
 */
function myFunction(e) {
  Logger.log('----------------->');
  Logger.log(JSON.stringify(e));
  Logger.log('----------------->');  
  var novel = e.namedValues['請輸入您想評價的小說書名。'][0];
  var author = e.namedValues['請告訴我這本小說的作者是誰。'][0];
  var category = e.namedValues['請選擇這部小說的分類。'][0];
  var grade = e.namedValues['請選擇您對這部小說的評價。'][0];
  var discuss = e.namedValues['請以文字簡單回答您對這部小說的看法。'][0];
  //Logger.log(novel+","+author+","+category+"+"+grade+","+discuss);
  OpenSheet(novel,author,category,grade,discuss);
}
function test(){
    var novel = "半仙闖江湖";
  var author = "作者";
  var category = "網遊";
  var grade = "3";
  var discuss = "推推推";
  OpenSheet(novel,author,category,grade,discuss);
}
function OpenSheet(novel,author,category,grade,discuss){
  var ss = SpreadsheetApp.openById("***************2pk5LvU2F4yqM");//此處輸入要開啟的excel id
  Logger.log(ss.getName());
  var sheetCategory = ss.getSheetByName(category);
  
  var lastRow = sheetCategory.getLastRow();
  var maxCol = sheetCategory.getMaxColumns();
  var arrRange = sheetCategory.getRange(3, 1, lastRow,2);
  //Logger.log(maxCol);
  var arrVal = arrRange.getValues();
//  Logger.log(arrVal);
  var repeat = false;
  for(var i = 0;i<lastRow;i++)
  {
    Logger.log(arrVal[i][1]);
    if(arrVal[i][1]==novel)
    {
      //評語
      var update = sheetCategory.getRange((i+3),1,1,maxCol);
      var arrUpdate = update.getValues();      
      for(var j = 9;j<maxCol;j++)
      {
        if(arrUpdate[0][j].toString()==""){          
          // var nowVal =  update.getCell(1, j).getValue() + "\n"+discuss;   // 同一個欄位斷行          
          update.getCell(1, (j+1)).setValue(discuss);          //新的一欄
          break;
        }
      }
      //計算票數
      var grassCount;
      var grassCell;
      switch (grade)
      {
          //毒草
        case "1":
          grassCell = update.getCell(1, 7);          
          break;
          //普通草
        case "2":
          grassCell = update.getCell(1, 6);
          break;
          //仙草
        case "3":
          grassCell = update.getCell(1, 5);
          break;
      }
      grassCount = grassCell.getValue();
      grassCell.setValue(grassCount+1);
      
      repeat = true;
    }
    if(arrVal[i][1].toString()==""){
      lastRow = i+3;
      break;
    }
  }
  if(repeat==false){
    var maxCol = sheetCategory.getMaxColumns()
    var insert = sheetCategory.getRange(lastRow,1,1,10);
    Logger.log("lastrow:"+lastRow+";"+insert.getValues());
    insert.getCell(1,2).setValue(novel);  
    insert.getCell(1,3).setValue(author);
    insert.getCell(1,4).setValue("謎");
    switch (grade)
      {
          //毒草
        case "1":
          insert.getCell(1, 7).setValue(1);          
          insert.getCell(1, 6).setValue(0);
          insert.getCell(1, 5).setValue(0);
          break;
          //普通草
        case "2":
          insert.getCell(1, 6).setValue(1);
          insert.getCell(1, 7).setValue(0);
          insert.getCell(1, 5).setValue(0);
          break;
          //仙草
        case "3":
          insert.getCell(1, 5).setValue(1);
          insert.getCell(1, 6).setValue(0);
          insert.getCell(1, 7).setValue(0);
          break;
      }
    
    insert.getCell(1,8).setValue("本書的簡介是個謎");   //介紹
    insert.getCell(1,9).setValue(discuss);
  }
}

2015年11月23日 星期一

搬家..

換到新公司也快一年了,在公司不想用自己的google帳號登入,
另外請了一組帳號,這段期間用點部落用的挺習慣。
但改版後就.........

想要換個地方,但在公司又不想用自己的帳號,幸好想起來blogger能用共用作者。

萬幸阿~~!!

不過code的部分可能還要看看有沒有辦法弄了。


code的部分應該搞定了
參考 這篇

然後

<code>your code...</code>


console.log("hello world");