Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6 - SQLServer] Campi completati con spazi

    Buongiorno a tutti.
    Mi hanno messo a porre delle modifiche ad un programma scritto in VB6 con la parte del corpo non illuminata dal sole se non in una spiaggia di nudisti.

    Non capisco ne come ne perchè, l'accesso al db con creazione di un recordset mi ritorna dei campi completati con degli spazi fino alla lunghezza massima.

    Ad esempio se nel db ho "Danni da acqua" sono 14 caratteri.
    Il campo è un nvarchar di 65 (prima era un char ma dava lo stesso problema).
    Faccio la query.
    A recorset mi ritrovo "Danni da acqua [...]" per un totale di 65 caratteri.
    Questo campo è modificabile tramite TextBox, ma se aggiungo una lettera (ad esempio "Danni da acqua1 [...]" il campo diventa di 66 caratteri e l'insert va giustamente in errore, dovrei quindi togliere n caratteri quanti sono quelli che devo inserire.
    Se a manina santa tolgo tutti gli spazi in coda e poi salvo, al successivo caricamento trovo la forma corretta "Danni da acqua" di lunghezza 14.
    Dato che ho una miriade di dati non posso pretendedere che L'utente si metta a pulire uno per uno i campi.
    Ho provato con LTrim ma è come se non riconoscesse gli spazi.

    Avete qualche idea malsana?
    Il mio mononeurone ormai ha fatto le valigie e m'ha lasciato in completa solitudine...yuuuuhuuuuu, c'è neeessuuuuuunoooooo????...gluglugl...u

  2. #2
    LTrim elimina gli spazi a sinistra; a te serve RTrim che li elimina a destra, o Trim, che li elimina da entrambe le parti.
    Suggerimento: usa LTrim$/RTrim$/Trim$ al posto di LTrim/RTrim/Trim, perché mentre le prime accettano e restituiscono parametri String le seconde accettano e restituiscono parametri Variant, per cui ogni volta che le chiami il tuo parametro stringa viene convertito in Variant, dentro alla funzione viene riconvertiti in stringa per essere elaborato, quindi il risultato viene riconvertito in Variant e quindi viene nuovamente riconvertito in stringa quando lo assegni ad una variabile stringa. Tutto questo ovviamente fa perdere un mucchio di tempo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Scusa hai ragione...ho scritto ltrim ma intendevo rtrim...

    ...cmq eliminando le righe

    txtDescrizione.Text = Rtrim$(Rs!Descrizione)

    dalla Form_Load e

    Rs!Descrizione = Rtrim$(txtDescrizione.text)

    dal Save_Click e riscrivendole (cop'incolla) s'è messo a funzionare.

    Cmq non comprendo come mai lui a DB trovi sempre 65 caratteri!

    :master:

    P.S. Uso il $
    Il mio mononeurone ormai ha fatto le valigie e m'ha lasciato in completa solitudine...yuuuuhuuuuu, c'è neeessuuuuuunoooooo????...gluglugl...u

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474

    Moderazione

    Ho spostato la discussione all'interno del forum dedicato a Visual Basic (VBx, VBA, ...) e ai linguaggi per .NET Framework (VB.NET, C#, ...).

    In futuro, poni in questo forum le domande relative a questi linguaggi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.