从 SQL Server 和 VB6 控件中的显示中读取 UTF-8 字符串



我正在尝试显示 UTF-8 字符集(除了 VB6 控件上的中文或日语等英语(,这是来自 SQL SERVER 数据库的查询结果,每当我从记录集中读取时,它总是给出"???"(问号(,我已经经历了这么多线程,但找不到任何可以帮助我在从记录集获取的 VB6 控件上显示 Unicode 字符的东西。

亚多布。流具有字符集等属性,因此我们可以将字符集设置为 UTF-8。 我们在ADODB中有什么吗?记录集还要从数据库读取 UTF-8 字符?

Private Sub Command1_Click()
Dim zConnectString As String
Dim zConnection As ADODB.Connection
Dim record As ADODB.Recordset
Dim zServerName As String
Dim zDBUser As String
Dim zDBPassword As String
Dim com As String
Dim data As String
Dim cmd As ADODB.Command
zServerName = SERVER_IP
zDBUser = USER
zDBPassword = PWD
zConnectString = "Provider=MSDASQL;Driver=SQL Server Native Client 11.0; Server=" & zServerName & "; UID=" & zDBUser & ";PWD=" & zDBPassword
zConnectString = zConnectString & ";Network=DBMSSOCN"
Set zConnection = New ADODB.Connection
zConnection.ConnectionString = zConnectString
zConnection.CursorLocation = adUseClient

zConnection.Open
Dim rsRecCount As Integer
Set cmd = New ADODB.Command
cmd.ActiveConnection = zConnection
cmd.CommandText = "select PU_Desc from [SOADB].[dbo].[Prod_Units_Base] where PU_Id =22"
cmd.CommandType = adCmdText
Set record = New ADODB.Recordset
record.CursorLocation = adUseServer
record.Open cmd, , adOpenForwardOnly, adLockReadOnly

rsRecCount = record.RecordCount
Dim StrUnicode As String

Dim x As String
While Not record.EOF
x = record!PU_Desc 
record.MoveNext
Wend
Text1.Text = x    
End Sub

以上是示例应用程序,我正在读取 x 中的记录集并获取值为"??">

下面是查询,PU_Desc数据类型 = nvarchar[100]

select PU_Desc from [SOADB].[dbo].[Prod_Units_Base] where PU_Id =22
PU_Desc = 锅炉

您可以尝试使用此组件中的控件(例如:文本框(显示数据:

Project -> Components -> Microsoft Forms 2.0 Object Library

而且,最重要的是直接从记录集中分配值。

注意:与默认控件相比,某些属性是不同的(例如:文本框(

希望对:)有所帮助

最新更新