【问题标题】:Cannot read more then 255 characters from MEMO field using ADODB with VB6无法使用带有 VB6 的 ADODB 从 MEMO 字段中读取超过 255 个字符
【发布时间】:2019-10-29 10:45:56
【问题描述】:

我正在尝试使用 ADODB 从 Access 2.0 文件中读取/写入 MEMO 类型字段。我可以将数据写入 MEMO 字段 - 超过 255 个字符(当我在 Access 中打开转换后的文件时,我可以看到所有应该存在的数据),但我无法使用 VB6 代码读取超过 255 个字符,如下所示。 rst("Opis") 是我感兴趣的备忘录字段:

Set db = New ADODB.Connection
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & T_BAZA & ";Persist Security Info=False"

Set rst = New ADODB.Recordset

SQL = "SELECT DISTINCT Opis FROM JadlospisSzczegoly WHERE Opis IS NOT NULL AND NazwaJadlospisu='" & LCase(Me.Combo3.Text) & "' AND Dzien=" & t_Dzien & " AND Posilek=" & t_Posilek
rst.Open SQL, db, adOpenStatic, adLockOptimistic, adCmdText

Do While Not rst.EOF
    Me.RichTextBox1.Text = Trim$(rst("Opis"))
    rst.MoveNext
Loop

关于如何解决这个问题的任何想法?

【问题讨论】:

  • DISTINCT 子句与 MEMO 不兼容

标签: ms-access vb6 ado


【解决方案1】:

我找到了问题。 SQL 查询中的 DISTINCT 是问题所在。我已经读过带有 memo 数据类型的 DISTINCT 不能正常工作。

删除后,MEMO 文件中的所有字符都会显示出来。

【讨论】:

    【解决方案2】:

    试试GetChunk() 方法:

    Do While Not rst.EOF
        If rst.Fields("Opis").ActualSize > 0 Then
            Me.RichTextBox1.Text = rst.Fields("Opis").GetChunk(rst.fields("Opis").ActualSize)
        Else
            Me.RichTextBox1.Text = "n/a"
        End If
       rst.MoveNext
    Loop
    

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-04-20
      • 1970-01-01
      相关资源
      最近更新 更多