2021年8月18日 星期三

[C++]Char to TCHAR

Char 轉成 TCHAR的辦法

// ANSI(char) to Unicode(TCHAR)

char* temp = "測試";

int nIndex = MultiByteToWideChar(CP_ACP, 0, temp , -1, NULL, 0);

TCHAR *pUnicode = new TCHAR[nIndex + 1];

MultiByteToWideChar(CP_ACP, 0, temp , -1, pUnicode, nIndex);



// Unicode(WCHAR) to ANSI(char)

TCHAR *pUnicode = _T("你好");

int nIndex = WideCharToMultiByte(CP_ACP, 0, pUnicode, -1, NULL, 0, NULL, NULL);

char *temp = new char[nIndex + 1];

WideCharToMultiByte(CP_ACP, 0, pUnicode, -1, temp , nIndex, NULL, NULL);

2021年8月3日 星期二

[SQL]CURSOR 光標用法

說明:  

 CURSOR 為暫存資料,一次只針對一個資料集直接對資料庫進行操作搬移或其他操作


注意 FETCH取得全域變數狀態(@@FETCH_STATUS)

0:FETCH成功

-1:FETCH失敗

-2:資料不存在


--T2 table have 2 column(id,status)

DECLARE cur_Buf CURSOR

FOR

SELECT * FROM [dbo].T2

DECLARE @iBuf_Id INT = 0;

DECLARE @iBuf_Status INT = 0;

DECLARE @iShow_Id INT = 0;

DECLARE @iShow_Status INT = 0;

DECLARE @iShow_Count INT = 0;

 

PRINT '----START---'

OPEN cur_Buf

FETCH NEXT FROM cur_Buf into @iBuf_Id,@iBuf_Status

WHILE(@@FETCH_STATUS = 0) BEGIN

   SET @iShow_Id = @iBuf_Id

   SET @iShow_Status = @iBuf_Status

   SET @iShow_Count = @iShow_Count +1

   FETCH NEXT FROM cur_Buf into @iBuf_Id,@iBuf_Status

END

CLOSE cur_Buf

DEALLOCATE cur_Buf

PRINT '----OVER---'

SELECT @iShow_Id,@iShow_Status,@iShow_Count

 

 


[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...