Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Memorizzazione stringhe con SQLEXPRESS 2005
mercoledì 15 luglio 2009 - 13.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sg
Profilo
| Newbie
26
messaggi | Data Invio:
mer 15 lug 2009 - 13:58
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
5.625
messaggi | Data Invio:
mer 15 lug 2009 - 14:31
>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
26
messaggi | Data Invio:
mer 15 lug 2009 - 20:24
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
5.625
messaggi | Data Invio:
mer 15 lug 2009 - 21:48
>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
Torna su
Stanze Forum
Elenco Threads
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 !