I need Help

lunedì 07 novembre 2005 - 17.32

SteDotNet Profilo | Newbie

Salve ragazzi, premetto che mi sto avvicinando ora VB.NET quindi mi scuserete se pongo una domanda da "topolone" ....

Sto lavorando su alcune schifosissime tabelle DBF (DB5) e devo aggiornare una serie di campi ...
Il mio problema è relativo ai campi MEMO che in VB ho verificato essere LongVarChar e che, almeno secondo l'help in linea, vengono trattati come campi string. Ho utilizzato ADODB per connettermi.
La stranezza è che:

-se stampo il valore del campo FMEMO sulla console vedo il valore stesso
Console.Write("FMEMO - Value " & rsTec.Fields(idx).Value.ToString

-se invece lo assegno ad una stringa il risultato è una stringa vuota
sqlMacVal = sqlMacVal & "'" & rsTec.Fields(idx).Value.ToString & "', "


rsTec è il mio recordset utilizzato per la lettura. Io sto componendo una stringa SQL (una semplice INSERT) e non riesco a mettere questo maledetto valore nella stringa sqlMacVal.

Se non ricordo male i campi memo hanno la peculiarità di essere campi compattati, devo per caso utilizzare qualche funzione o metodo di conversione particolare?

Vi ringrazio a priori dei vostri eventuali consigli....

Stefano

Brainkiller Profilo | Guru

>Salve ragazzi, premetto che mi sto avvicinando ora VB.NET quindi
>mi scuserete se pongo una domanda da "topolone" ....

Figurati :)

>Il mio problema è relativo ai campi MEMO che in VB ho verificato
>essere LongVarChar e che, almeno secondo l'help in linea, vengono
>gestite come stringhe

Si è così, si usano quasi sempre le stringhe per qualsiasi tipo di campo testuale.

>rsTec è il mio recordset utilizzato per la lettura. Io sto componendo
>una stringa SQL (una semplice INSERT) e non riesco a mettere
>questo maledetto valore nella stringa sqlMacVal.

Mmh... allora quello che mi viene in mente è provare a verificare che cosa ci sia esattamente nel valore che stai concatenando. Non è che magari ci sono dei caratteri particolari ? Tipo ritorni a capo ecc. ?

Quello che ti consiglio per scovare il problema è andare in debug e con un Quick Watch verificare il contenuto effettivo di .Value successivamente seguire il flusso passo passo per vedere che valori assume via via sqlMacVal.
Per fare la Quitck Watch è molto facile, mentre sei in debug selezionare la variabile, tasto destro sopra la selezione e Quick Watch.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

SteDotNet Profilo | Newbie

Innanzi tutto grazie della tua attenzione David. Mi scuserai se ti rispondo solo ora ma ero in trasferta e sto riprendendo solo ora il problema.

In effetti ci sono dei ritorni a capo nella stringa ed ho la necessità di riportarli pari pari nel campo memo della tabella in cui effettuerò la INSERT. I campi string (se non ho capito male) dovrebbero supportarli, semplicemente li raffigurano come "caratteri sporchi".
Controllando la stringa dopo averla concatenata, vedo però che il risultato è come se avessi concatenato una string pari a "".
Se ti balenassero ulteriori idee sappi che sono bene accette, grazie mille.



Stefano Sozzi
Http://www.punzolaser.it

Brainkiller Profilo | Guru

>In effetti ci sono dei ritorni a capo nella stringa ed ho la
>necessità di riportarli pari pari nel campo memo della tabella
>in cui effettuerò la INSERT. I campi string (se non ho capito
>male) dovrebbero supportarli, semplicemente li raffigurano come
>"caratteri sporchi".

E' esatto, ci sono \r\n (VbCrLf in VB.NET).

>Se ti balenassero ulteriori idee sappi che sono bene accette,
> grazie mille.

Ciao Stefano,
purtroppo no, non saprei che altro consigliarti oltre che provare ad entrare in debug ma penso che l'hai già fatto. Non avendo il caso sotto'occhio posso solo immaginare cosa potrebbe essere. Puoi fare un altro test e stampare la lunghezza della stringa appena creata per vedere se anche qui ti ritorna zero.

Console.Writeline(stringa.Length.ToString())

Ciao



David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5