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
Tipo Campo in Database .mdf e Database.sdf --- Problema con ORDER BY
mercoledì 06 maggio 2009 - 22.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mer 6 mag 2009 - 22:35
Buona sera a tutti.
Come già detto, sono agli inizi con SqlServer.
Grazie al prezioso suggerimento di Lorenzo Benaglia, ho già risolto un problemone relativo alla sincronizzazione tra Db sul Server e Cache locale.
Ora, nasce un problema relativo al tipo di campi da usare.
A dire il vero, essendo abituato con Access, non ho ben chiare le idee riguardo all'assegnazione del tipo di campo in funzione dei dati che deve contenere.
Ho la necessità di ordinare i record ottenuti da una query e quindi uso la clausola ORDER BY.
In un primo momento, avevo impostato, come tipo di campo per i valori String, ntext.
Durante l'esecuzione della query, ricevevo un eccezione, in quanto, sembra non sia possibile ordinare i record in base ai campi di tipo ntext
Quindi ho sostituito il tipo ntext con varchar(MAX) e l'ordinamento funziona.
Il problema, nasce dal fatto che, mediante la sincronizzazione, nel database .sdf(CE), i tipi di campo varchar(MAX) vengono interpretati come ntext .... e quindi stesso problema per la clausola ORDER BY e non so il tipo di campo corretto da impostare per fare in modo che in tutti e due casi (Server o Locale) possa fare l'ordinamento dei dati correttamente.
E' chiaro che il problema lo potrei risolvere da codice ..... ma vorrei fare chiarezza riguardo ai tipi di campo in SqlServer
C'è qualcuno che potrebbe aiutarmi a fare chiarezza ???
Grazie anticipatamente.
Ciao.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 6 mag 2009 - 22:49
>Ho la necessità di ordinare i record ottenuti da una query e
>quindi uso la clausola ORDER BY.
>In un primo momento, avevo impostato, come tipo di campo per
>i valori String, ntext.
>Durante l'esecuzione della query, ricevevo un eccezione, in quanto,
>sembra non sia possibile ordinare i record in base ai campi di
>tipo ntext
>Quindi ho sostituito il tipo ntext con varchar(MAX) e l'ordinamento
>funziona.
Ciao Tiziano,
Parliamo di stringhe: effettivamente SQL Server offre diversi data type per memorizzare questo tipo di informazioni.
Sui Books Online troverai come sempre tutte le informazioni che ti servono:
http://msdn.microsoft.com/it-it/library/ms176089.aspx
http://msdn.microsoft.com/it-it/library/ms186939.aspx
Se vuoi approfondire il discorso Unicode, puoi iniziare con questo paragrafo:
http://msdn.microsoft.com/en-us/library/ms187828.aspx
Se la lunghezza massima della colonna è inferiore agli 8000 caratteri, ti sconsiglio di utilizzare varchar(max) ma piuttosto di specificare il numero massimo di caratteri supportato, questo perché varchar(max) ha una gestione interna del tutto differente (è a tutti gli effetti un blob paragonabile in un certo senso al data type memo di Access).
Per quanto riguarda i "classici" data type blob ntext, text e image, con SQL Server 2005 sono stati deprecati quindi non utilizzarli nei tuoi progetti:
http://msdn.microsoft.com/it-it/library/ms187993.aspx
>Il problema, nasce dal fatto che, mediante la sincronizzazione,
>nel database .sdf(CE), i tipi di campo varchar(MAX) vengono interpretati
>come ntext .... e quindi stesso problema per la clausola ORDER
>BY e non so il tipo di campo corretto da impostare per fare in
>modo che in tutti e due casi (Server o Locale) possa fare l'ordinamento
>dei dati correttamente.
Risolverai specificando il numero di caratteri supportati dalla colonna varchar.
>Grazie anticipatamente.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
gio 7 mag 2009 - 01:31
Ciao Lorenzo.
Perfetto!!! Chiarissimo e utilissimo.
Approfondirò comunque.
Ciao e Grazie
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 !