搜尋此網誌

2022年8月20日 星期六

帳務小管家歷史消費紀錄

輸入消費關鍵字:

2017年8月29日 星期二

2017年8月19日 星期六

如何在vs2014上面透過檔案總管批次加入檔案至專案

首先開啟專案之後,在欲加入的路徑下,使用檔案總管開啟


檔案總管開啟之後,將欲加入的整批檔案複製到此處


回到vs2014內,透過「顯示所有檔案」顯示該目錄

 

然後在目錄上,使用「加入至專案」加入


之後原本空心的圖示,就會變成實心圖示







2016年10月6日 星期四

尚未commit之前,如何取得寫入的資料

為了達到資料一致性,我們會在程式上包Transaction的動作

但是一旦包了Transaction,在尚未commit之前,如果不是在同一個connection下

無法讀到資料

譬如

create connection1

create connection2

connection1.insert

connection2.select -> 會抓不到 connection1.insert 的資料

除非connection1.commit

但是如果是

connection1.select -> 這就可以抓到 connection1.insert 的資料,即使尚未 connection1.commit

所以聰明的你應該知道,那就在一個動作內,都用同一個connection就好啦

沒錯

而且,我們可以把connection存到session變數內

經過測次,也可以有一樣效果

這樣一來就不用一直傳遞connection參數

只要需要時,去session抓出來用就好

譬如某段執行時,可以

create_connection();

do_something();

drop_connection();

---------------------------------------

create_connection() {
   create connection
   connection open
   create trainsation
   begin trainsation
   store connection to session
}

do_someting() {
   get connection from session
   query....
   update.....
}

drop_connection() {
   get connection from session
   connection.commit
   drop connect
   drop session
}














2016年8月1日 星期一

在ORACLE建立可連結SQL SERVER的LINK SERVER


先在ORACLE主機的tnanames.ora新增遠端主機資訊



開啟PL-SQL建立相關遠端資訊

連接到SQL-SERVER主機上,新增一個對接檔及內容如下,重點是對接資料庫要設定


修改LISTENER.ORA


重啟LISTENER服務


2016年3月21日 星期一

用文字檔寫LOG

string _file = @"c:\" + System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt";
        System.IO.FileStream fileStream = new System.IO.FileStream(_file, System.IO.FileMode.Create);
        fileStream.Close();
        using (System.IO.StreamWriter sw = new System.IO.StreamWriter(_file))
        {
            sw.Write(str);
        }

2016年2月2日 星期二

iis的網站突然更新後無法使用!!

今天發生一件詭異的事情,原本可以正常使用的網站(webservice)突然更新之後就掛了

追了許久,使用數種狀態去比對都無解

後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證

但是我沒異動過呀,唯一可能的原因是

我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係

導致我的service.asms掛了

2016年1月19日 星期二

pl sql 執行時,跳出 ora-12154 tns 無法解析指定的連線 id

可以確認一下是不是執行檔放在 C:\Program Files (x86) 下了,會有問題。

SQL SERVER 2014 還原資料庫作法

1.  確定SQL SERVER已啟動
2.  選取要還原的資料庫

3.  選取並加入欲還原的BAK

4.  勾選覆寫、取消還原結尾、中斷現有連接



2016年1月12日 星期二

Oracle: 讓 PL/SQL Developer 中的 Big5 字元能在 Windows 7 中正常顯示

反正是歷史包袱……
  總之,就是在環境變數裡加上新的變數:NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950
  1. 電腦上按右鍵
  2. 開啟內容
  3. 點擊進階系統設定
  4. 選擇進階頁籤
  5. 點擊環境變數按鈕
  6. 點擊 YOUR_NAME 的使用者變數下方的新增按鈕
  7. 變數名稱欄位中輸入NLS_LANG
  8. 變數值欄位中輸入AMERICAN_AMERICA.ZHT16MSWIN950
  9. 點擊確定按鈕
  之後重新啟動 PL/SQL Developer 就能看到亂碼恢復成正常的中文字了。

2016年1月4日 星期一

為查詢的結果加上序號(ROW_NUMBER,RANK,OVER)

在MS SQL2005以後,增加了一些幫查詢結果加上序號的函數
以下的範例使用北風(NorthWind)資料庫
介紹如下:
1.ROW_NUMBER
依照指定的欄位排序,並逐筆加上順號的方式
例如:

SELECT 
 ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn01

2.RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【跳脫】

SELECT 
 RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn02
3.DENSE_RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【不跳脫】


SELECT 
 --ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 --RANK() OVER(ORDER BY CustomerID) AS ROWID
 DENSE_RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn03

2015年9月22日 星期二

在SQL SERVER建立LINK SERVER的SQL SERVER別名

1)第1步:

  • 在SQL Server Management Studio中打開連結的伺服器,然後點擊“新增連結的伺服器”。
  • 選擇一般頁面
  • 在“連結的伺服器”中指定別名。
  • 選擇SQL Native Client的提供者。
  • 在“產品名稱”輸入 sql_server。
  • 在“資料來源”指定要使用的的主機名。

2)第2步:

  • 在安全性 - 使用此安全性內容建立

3)步驟3:

  • 在服務器選項卡 - 把“資料存取”,RPC,“RPC輸出”和“使用遠端定序”設為true。


2015年8月20日 星期四

"伺服器存放空間不足,無法處理此指令"解決辦法

最近剛好碰到有時候要進入"網路芳鄰"PC所方享的資料夾時,
就會出現"伺服器存放空間不足,無法處理此指令",
經過上網爬文後大概分有2種解決方法,有碰到的人可以參考一下~

第一種方法:

一般而言,此問題可能與防毒軟體更改了系統的登錄值而導致。

請依下列步驟找到目前的 IRPStackSize 後更改為建議值 25.

a. 按一下 [開始],按一下 [執行]。
b. 輸入:regedit,然後按一下 [確定]。
c. 找到下列機碼:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

d. 在右邊的視窗, 雙擊 IRPStackSize 的值。

提示: 如果 IRPStackSize 並不存在,請依下列方式建立: 

(1). 在 Parameters 資料夾上按右鍵。
(2). 指向新增, 並選取 DWord 值。
(3). 輸入 IRPStackSize

重要: 請注意大小寫。
 
e. 更改底數為十進制。
f. 在值的資料欄輸入25然後按確定。
g. 結束登錄編輯程式。

更改完登錄機碼後, 您必須重新啟動電腦,或重新啟動"伺服器服務" 。 

可以透過下列方式:

a. 按一下 [開始],按一下 [執行],輸入:cmd,然後按一下 [確定]。 
b. 輸入 net stop server
c. 當服務停止後, 再輸入 net start server 重新啟動該服務.

當執行完後,相關的登錄值即會更新,重開機後您可以觀察問題是否解決。

參考來源:
http://qa.pcuser.com.tw/modules/newbb/viewtopic.php?topic_id=26377&forum=9

=====================================

第二種方法:

事件檢視器內有以下內容
-----------------------------------------------------------------------
事件來源: 
Srv
事件識別碼: 
2020
描述: 
伺服器無法透過系統分頁共用區來進行配置,因為共用區目前是空的。
Meaning The server was unable to allocate from the system paged pool because the pool was empty.

-----------------------------------------------------------------------
相關處理連結
http://support.microsoft.com/default.aspx?scid=kb;en-us;312362 

Server is unable to allocate memory from the system paged pool
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Session Manager/Memory Management 
1. 新增PoolUsageMaximum, 格式為DWORD, 內容使用十進位, 填入60
Value name: PoolUsageMaximum
Data type: REG_DWORD
Radix: Decimal
Value data: 60 

2. 修改PagedPoolSize, 使用十六進位, 填入8個F
Value name: PagedPoolSize
Data type: REG_DWORD
Radix: Hex
Value data: 0xFFFFFFFF

http://support.microsoft.com/default.aspx?scid=kb;en-us;286060
因為其他電腦的分享印表機, 在本機電腦又分享出去造成的問題

參考來源:
http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=11294&blogId=411

2015年7月30日 星期四

替查詢資料表建立別名


在 Oracle資料庫下,以A帳號登入所建立的資料表(如 customer),B帳號想存取該資料表,必須有存取該資料表的權限之外,在沒有額外設定下,資料表名稱為〔帳號.資料表名稱(如A.customer)〕,但透過 SYNONYM,資料表名稱可改為 customer。

使用 CREATE SYNONYM創建一個別名,which is an alternative name for a table,view...,但使用 CREATE SYNONYM的前提是具有使用該指令的權限

CREATE SYNONYM pay.payrec_pms FOR paysys.payrec_pms;

GRANT INSERT, delete, update, select ON  paysys.payrec_pms TO pay WITH GRANT OPTION;

DROP SYNONYM pay.payrec_pms;


2015年7月12日 星期日

用其它的 Table 來更新資料(Update From table)

pl-sql

UPDATE table1 a
SET table1_column = (SELECT table2_column
FROM table2
WHERE ID = a.ID)

如果雙方均有KEY值,使用下面這個方法會超快

UPDATE (
  SELECT PAYCDL.ID_NO, PAYCDL.DATE_ADD DATE_ADD_OLD,PAYCDL.DATE_LAST_MAINT DATE_LAST_MAINT_OLD,
               EXSCCS_PMS2.DATE_ADD DATE_ADD_NEW, EXSCCS_PMS2.DATE_LAST_MAINT DATE_LAST_MAINT_NEW
          FROM PAYCDL,
               EXSCCS_PMS2
         WHERE PAYCDL.ID_NO = EXSCCS_PMS2.ID_NO)
   SET DATE_ADD_OLD = DATE_ADD_NEW,
       DATE_LAST_MAINT_OLD = DATE_LAST_MAINT_NEW

-----------------------------------
ms-sql

UPDATE table1
      SET table1.col = table2.col1
FROM table2 WHERE table2.oldCol = table1.col

2015年6月23日 星期二

呼叫WebService 發生MaxReceivedMessageSize 錯誤

撰寫C# Win Form 呼叫一個Web Service , 由於資料量過大,所以發生MaxReceivedMessageSize 的錯誤

調整App.Config 即可解決這個問題

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      **<basicHttpBinding>
        <binding name="MobileWebServiceSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"  />
        </binding>
      </basicHttpBinding>**

    </bindings>
    <client>
      <endpoint address="http://www.xxxx.com.tw/mobileWebservice.asmx"
          binding="basicHttpBinding" bindingConfiguration="MobileWebServiceSoap"
          contract="WebServiceGT.MobileWebServiceSoap" name="MobileWebServiceSoap" />
    </client>
  </system.serviceModel>
</configuration>

2015年5月6日 星期三

ntext, text 資料類型無法用 replace 的解決方法

某個欄位的資料要換改內容,無法直接用 replace 指令,解決方法為
先把它轉型成 varchar 再用 replace
update tTest set Body=replace(cast(Body as varchar(8000)),'/userfiles', '/test/userfiles')

2015年4月2日 星期四

pl/sql死锁情况:record is locked by another user

一、PL/SQL 查看锁:
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id = t2.sid 
order by t2.logon_time;


二、查看锁后,找出sid,serial#,将所有的锁kill掉
alter system kill session 'sid,serial#'