Memorizzazione stringhe con SQLEXPRESS 2005

mercoledì 15 luglio 2009 - 13.58

sg Profilo | Newbie

Ho un problema con la memorizzazione di stringhe su database SQLEXPRESS 2005.
In pratica ho dei campi definiti char con lunghezza fissa.
VB.NET memorizza i text dei miei textbox non per la sua lunghezza reale ma riempie il residuo di spazi per raggiungere la lunghezza fissa cioè se ho definito un campo descrizione char(50) e nel controllo textbox inserisco una voce di 15 caratteri mi memorizza i 15 + il resto di spazi.
Il problema si ha in modifica del textbox perchè se cancello i 15 caratteri mi considera il controllo non vuoto o se tento di inserire dei caratteri non posso scrivere perchè il controllo è pieno, devo quindi cancellare caratteri.
Esiste un metodo semplice per risolvere il problema perchè avevo pensato all'evento Format/Parse (usando trim) dato che ho definito nel controllo dei databindings ma vorrei evitare di aggiungere aventi ai bindings di ogni text.

lbenaglia Profilo | Guru

>Ho un problema con la memorizzazione di stringhe su database
>SQLEXPRESS 2005.
>In pratica ho dei campi definiti char con lunghezza fissa.
>VB.NET memorizza i text dei miei textbox non per la sua lunghezza
>reale ma riempie il residuo di spazi per raggiungere la lunghezza
>fissa cioè se ho definito un campo descrizione char(50) e nel
>controllo textbox inserisco una voce di 15 caratteri mi memorizza
>i 15 + il resto di spazi.
Questo è il comportamento che hai con i data type a lunghezza fissa come char e nchar.

>Il problema si ha in modifica del textbox perchè se cancello
>i 15 caratteri mi considera il controllo non vuoto o se tento
>di inserire dei caratteri non posso scrivere perchè il controllo
>è pieno, devo quindi cancellare caratteri.
>Esiste un metodo semplice per risolvere il problema
Certo, invece di utilizzare un data type a lunghezza fissa utilizzane uno a lunghezza variabile, modificando la colonna char(x) in varchar(x).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

sg Profilo | Newbie

ok sto lasciando char solo i campi che mi occupano con certezza tutti i caratteri come il codice fiscale o altro ma mi consigli di lasciare char fisso i piccoli campi come i codici alcuni dei quali sono chiavi nella mia tabella o in quelle esterne?

lbenaglia Profilo | Guru

>ok sto lasciando char solo i campi che mi occupano con certezza
>tutti i caratteri come il codice fiscale
Bene

> ma mi consigli di lasciare char fisso i piccoli campi come i codici alcuni dei
>quali sono chiavi nella mia tabella o in quelle esterne?
L'overhead derivante dall'utilizzo del datatype varchar rispetto al char è del tutto trascurabile, pertanto utilizza il char esclusivamente per le info a lunghezza fissa.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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