日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServerunicode支持的具體體現(xiàn)

以下的文章主要向大家講述的是SQL Server unicode 支持,假如你對SQL Server unicode的實(shí)際應(yīng)用有興趣了解的話,你就可以通過以下的文章對其有更好的了解,以下就是具體方案的描述,希望在你今后的學(xué)習(xí)中會(huì)有所幫助。

超過十多年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序制作,微信開發(fā),成都app軟件開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

所有的文檔和網(wǎng)上的文章都說N可以解決問題。但如果使用wstring bind后select...,則會(huì)發(fā)現(xiàn)得到的 wstring 格式的column很大可能結(jié)果是亂碼。

其實(shí)可以這樣解釋這個(gè)問題:鍵盤是沒法輸入uniocde編碼的,除非用微軟拼音的內(nèi)碼輸入。因此數(shù)據(jù)庫的客戶端軟件輸入表的內(nèi)容并非SQL Server unicode,即使在表設(shè)計(jì)的時(shí)候用了N。因此select出來的結(jié)果并不能用wsting來解析。

那么我們怎么在初始化數(shù)據(jù)庫的時(shí)候使用SQL Server unicode字符串呢?

 
 
 
  1. SQLRETURN SQLExecDirect(  
  2. SQLHSTMT StatementHandle,  
  3. SQLCHAR * StatementText,  
  4. SQLINTEGER TextLength);  

sql 在執(zhí)行的時(shí)候,調(diào)用SQLExecDirect,其sql語句是SQLCHAR 類型,其實(shí)就是unsigned char 的一段空間,并不一定要求這是一個(gè)以'\0'結(jié)尾的ascii 字符串。如果StatementText是一個(gè)ascii 字符串,TextLength可以設(shè)置為SQL_NTS。

StatementText是可以嵌入SQL Server unicode字符的,比如使用INSERT INTO T (c1,c2) VALUES(N'unicode string',data),這時(shí)候TextLength要填入整個(gè)串的長度而不是SQL_NTS。

拼寫出這樣一個(gè)串既不能用窄字符串的函數(shù)集合,也不能用寬字符串的函數(shù)集合。這里使用memcpy類的函數(shù)來構(gòu)造這樣的串,然后調(diào)用SQLExecDirect,取得了成功。比如,

 
 
 
  1. USE [test]  
  2. GO  
  3. SET ANSI_NULLS ON  
  4. GO  
  5. SET QUOTED_IDENTIFIER ON  
  6. GO  
  7. CREATE TABLE [dbo].[電話薄](  
  8. [姓名] [ntext] NULL,  
  9. [電話] [nchar](32) NULL  
  10. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]  
  11. /*  
  12. * insert a unicode string into the table  
  13. *  
  14. */  
  15. struct buf_s{  
  16. void * buf;  
  17. int len;  
  18. };  
  19. /*  
  20. *just be same as memcpy ,except for the return.  
  21. */  
  22. int memapend(void * dst, void * src ,int len)  
  23. {  
  24. memcpy(dst,src,len);  
  25. return len;  
  26. }  
  27. void insert()  
  28. {  
  29. unsigned char sql_buf[256]={0};  
  30. int len_sql=0;  
  31. char str1[]="insert into 電話薄 (姓名,電話) values(N'";  
  32. int len1=strlen(str1);  
  33. wchar_t str2[]=L"張三";  
  34. int len2=wcslen(str2)*sizeof(wchar_t);  
  35. char str3[]="',N'";  
  36. int len3=strlen(str3);  
  37. wchar_t str4[]=L"010123456";  
  38. int len4=wcslen(str4)*sizeof(wchar_t);  
  39. char str5[]="')";  
  40. int len5=strlen(str5);  
  41. buf_s buf_s_a []={str1,len1,  
  42. str2,len2,  
  43. str3,len3,  
  44. str4,len4,  
  45. str5,len5};  
  46. for (int i=0;i
  47. {  
  48. len_sql+=memapend(sql_buf+len_sql, buf_s_a[i].buf,buf_s_a[i].len);  
  49. }  
  50. SQLExecDirect(h,sql_buf,len_sql);  
  51. }  
  52. btw:find a good site for ms_sqlserver:  

以上的相關(guān)內(nèi)容就是對SQL Server unicode 支持的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server 易混淆的一些數(shù)據(jù)類型有哪些?
  2. SQL Server 日期操作全接觸,嘻嘻
  3. 對SQL Server 2005 BI的描述
  4. 批量修改SQL Server 2005表構(gòu)架很簡單!
  5. MS SQL Server 2000系統(tǒng)數(shù)據(jù)類型有哪些?
     

網(wǎng)站名稱:SQLServerunicode支持的具體體現(xiàn)
當(dāng)前路徑:http://www.5511xx.com/article/djioeii.html