成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server unicode 支持的具體體現

數據庫 SQL Server
我們今天主要向大家講述的是SQL Server unicode 支持,在實際操作中我們經常會遇到關于SQL Server unicode 支持的問題,以下就是主要內容的介紹。

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

所有的文檔和網上的文章都說N可以解決問題。但如果使用wstring bind后select...,則會發現得到的 wstring 格式的column很大可能結果是亂碼。

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

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

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

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

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

拼寫出這樣一個串既不能用窄字符串的函數集合,也不能用寬字符串的函數集合。這里使用memcpy類的函數來構造這樣的串,然后調用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<sizeof(buf_s_a)/sizeof(buf_s);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:  

以上的相關內容就是對SQL Server unicode 支持的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server 易混淆的一些數據類型有哪些?
  2. SQL Server 日期操作全接觸,嘻嘻
  3. 對SQL Server 2005 BI的描述
  4. 批量修改SQL Server 2005表構架很簡單!
  5. MS SQL Server 2000系統數據類型有哪些?
     
責任編輯:佚名 來源: 51CTO
相關推薦

2009-09-08 14:45:24

Linq to SQL支持SQL Serve

2010-03-24 14:55:19

Python編程語言

2010-07-07 09:47:04

SQL Server索

2009-05-06 14:03:13

SQL Server日志log

2010-03-25 11:08:08

Python優點

2011-08-12 08:52:39

SQL ServerHadoop

2010-10-21 16:38:27

sql server文

2010-08-03 13:36:55

DB2 9數據庫缺點

2010-12-23 09:25:20

SQL Server

2010-06-11 17:51:17

MySQL數據庫

2010-07-13 15:29:24

SQL Server

2010-07-22 17:33:42

2010-03-15 16:04:41

以太網技術

2010-06-18 11:31:48

SQL Server數

2009-12-07 10:02:08

SQL Server支

2012-04-25 15:23:52

SQL Server

2010-06-17 15:02:08

SQL SERVER

2011-03-28 16:39:41

SQL Server

2010-11-10 15:23:55

SQL SERVER

2009-12-23 13:52:18

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人激情视频免费在线观看 | 激情自拍偷拍 | 羞羞视频在线观免费观看 | 国产三级精品三级在线观看四季网 | 成人a网| 久久久精彩视频 | 欧美日韩18 | 国产激情偷乱视频一区二区三区 | 自拍第1页 | 欧美日韩中文字幕在线 | 日韩在线视频网址 | 久久99久久98精品免观看软件 | 亚洲人人 | 超碰在线人人 | 91就要激情 | 久久综合伊人 | 国产二区在线播放 | 黑人一级片视频 | 国产偷录叫床高潮录音 | 国内精品久久久久久久影视简单 | 成人黄色三级毛片 | 91成人精品视频 | 免费国产成人av | 99热首页 | 奇米视频777 | 免费v片 | 亚洲激情自拍偷拍 | 亚洲精品久久久久久久不卡四虎 | 欧美v日韩| 久久一二 | 超碰成人免费观看 | 四虎影院新网址 | 精品日韩一区二区 | 91av在线影院 | 三级黄色片在线观看 | 国产视频二区在线观看 | 欧美综合久久久 | 免费爱爱视频 | 九九热最新视频 | 在线免费观看视频黄 | 91视频三区|