搜尋此網誌
2022年8月20日 星期六
2017年8月29日 星期二
2017年8月19日 星期六
如何在vs2014上面透過檔案總管批次加入檔案至專案
首先開啟專案之後,在欲加入的路徑下,使用檔案總管開啟
檔案總管開啟之後,將欲加入的整批檔案複製到此處
回到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
}
但是一旦包了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年10月3日 星期一
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);
}
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月29日 星期一
試著把流水號pkey做成另一種流水號id吧
T-SQL
SELECT CONVERT(VARCHAR, GETDATE(),126)+'-'+CONVERT(NVARCHAR(50),NEWID())
SELECT CONVERT(VARCHAR, GETDATE(),126)+'-'+CONVERT(NVARCHAR(50),NEWID())
2016年2月2日 星期二
iis的網站突然更新後無法使用!!
今天發生一件詭異的事情,原本可以正常使用的網站(webservice)突然更新之後就掛了
追了許久,使用數種狀態去比對都無解
後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證
但是我沒異動過呀,唯一可能的原因是
我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係
導致我的service.asms掛了
追了許久,使用數種狀態去比對都無解
後來發現原來是service.asmx的安全性少了cpcis1-iis\users的認證
但是我沒異動過呀,唯一可能的原因是
我的異動檔案來源曾經被rar壓縮過,不曉得是不是被壓縮過的關係
導致我的service.asms掛了
2016年1月19日 星期二
2016年1月12日 星期二
Oracle: 讓 PL/SQL Developer 中的 Big5 字元能在 Windows 7 中正常顯示
反正是歷史包袱……
總之,就是在環境變數裡加上新的變數:
NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950- 在
電腦上按右鍵 - 開啟
內容 - 點擊
進階系統設定 - 選擇
進階頁籤 - 點擊
環境變數按鈕 - 點擊
YOUR_NAME 的使用者變數下方的新增按鈕 - 在
變數名稱欄位中輸入NLS_LANG - 在
變數值欄位中輸入AMERICAN_AMERICA.ZHT16MSWIN950 - 點擊
確定按鈕
之後重新啟動 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
2.RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【跳脫】
SELECT
RANK() OVER(ORDER BY CustomerID) AS ROWID
,*
FROM Orders
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
2015年9月22日 星期二
在SQL SERVER建立LINK SERVER的SQL SERVER別名
1)第1步:
2)第2步:
3)步驟3:
- 在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
就會出現"伺服器存放空間不足,無法處理此指令",
經過上網爬文後大概分有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
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>
調整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#'
訂閱:
文章 (Atom)














