Campo Memo

giovedì 31 marzo 2005 - 12.19

AntCiar Profilo | Expert

Salve,
vengo subito al dunque: ho una tabella in ACCESS contenente tra i campi, unodi tipo "MEMO". Tramite una funzione in VBNET leggo il valore di questo campo. Per leggere uso un datareader del tipo:

Dim OleStr as String
Dim DtReader As System.Data.OleDb.OleDbDataReader
Dim OLECommCim As New OleDb.OleDbCommand()

OleStr = "SELECT DocumentiVoci.Descrizione FROM DocumentiVoci WHERE KeyRiga = 25;"

Me.OLECommCim.CommandText = OleStr
DtReader = OLECommCim.ExecuteReader

OleStr = ""
While DtReader.Read()
OleStr = CType("" & DtReader("Descrizione"), String)
End While
DtReader.Close()

All'interno del campo in questione vi è un testo di lunghezza 856 caratteri. Quando vado a leggere il suo valore, mi viene troncato a 255 caratteri. Come posso fare per evitare questo?

Grazie

Andy Profilo | Senior Member

Ciao..non è la funzione CType che ti fa il danno?

Prova a fare il cast di .net, ossia:


OleStr = DtReader("Descrizione").ToString


Dovresti risolvere il problema.


AntCiar Profilo | Expert

Ho provato a fare come dici ma non va lo stesso.

Ho provato anche ad usare ADO ma la cosa non va lo stesso. Ho provato a creare anche un dataadapter ma non ci sono piuscito perchè "DocumentiVoci" è una query di unio che al suo interno richiama altre query che a sua volta richiamano altre query.

Non so come fare.

Grazie lo stesso. Ciao

Brainkiller Profilo | Guru

Ciao,
ho trovato questa soluzione per leggere completamente il campo memo. Bisogna provarla:

dr.Read()
FieldLen = dr.Item(MemoCol).Length
Dim MemoBuffer(FieldLen - 1) As Char
Dim startIndex As Integer = 0
retVal = dr.GetChars(1, startIndex, MemoBuffer, 0, MemoBuffer.Length)
Console.WriteLine(MemoBuffer)
dr.Close()

ciao
david
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5