121 messaggi dal 06 giugno 2005
Salve,
utilizzo MSSQL 2005 Express, ma ho dei problemi a inserire le lettere accentate in una tabella, è sicuramente un problema di charset (attualmente uso il LATIN1_CI).
Quale è il nome del set corretto?

Grazie
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
lotstyl wrote:
Salve,
utilizzo MSSQL 2005 Express, ma ho dei problemi a inserire le lettere accentate in una tabella, è sicuramente un problema di charset (attualmente uso il LATIN1_CI).
Quale è il nome del set corretto?


in che senso "hai dei problemi"??
SET NOCOUNT ON;
USE tempdb;
GO
SELECT CONVERT(varchar(25), SERVERPROPERTY('Collation')) AS [Collation di default];
CREATE TABLE dbo.t ( t varchar(5) );
INSERT INTO dbo.t VALUES ( 'É' );
SELECT * FROM dbo.t;
GO
DROP TABLE dbo.t;
--<------
Collation di default
-------------------------
Latin1_General_CI_AS

t
-----
É

come vedi, il carattere, rientrante nella codepage dell'europa occidentale, viene tranquillamente gestito... se invece sei "fuori" dai caratteri tradizionali, e' possibile che ti necessiti utilizzare il tipo di dato nvarchar... la collation non "serve" in questo senso, in quanto definisce solo le regole semantiche di ordinamento e non "cio' che puo' essere salvato" all'interno della colonna.. questo compito spetta al tipo di dato.. ripeto, potresti avere problemi che il tipo varchar non soddisfa, mentre il nvarchar si..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
121 messaggi dal 06 giugno 2005
Cioè, spiego meglio il mio problema.
Ho un file csv che contiene delle parole con lettere accentate (à, è, ò, ù, ì). Quando inserisco nella tabella questi dati utilizzando:

BULK
INSERT TableName
FROM 'c:\csvtest.csv'
WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = '\n')
perdo le lettere accentate è vengono inseriti strani caratteri al loro posto.
Utilizzo SQL Server Management Studio Express per gestire il database (MSSQL Express 2005)

Grazie.
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
lotstyl wrote:
Cioè, spiego meglio il mio problema.
Ho un file csv che contiene delle parole con lettere accentate (à, è, ò, ù, ì). Quando inserisco nella tabella questi dati utilizzando:
BULK
INSERT TableName
FROM 'c:\csvtest.csv'
WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = '\n')
perdo le lettere accentate è vengono inseriti strani caratteri al loro posto.
Utilizzo SQL Server Management Studio Express per gestire il database (MSSQL Express 2005)

prova ad impostare il parametro CODEPAGE, visto che questo puo' influenzare nell'ovvio caso, come il tuo, che i dati contengano caratteri con codice maggiore a 127 o inferiori a 32
prova quindi
CODEPAGE = 'ACP'
che e' valido per il set ISO 1252
, DATAFILE = 'widechar'
o 'widenative'

vedi comunque http://msdn.microsoft.com/en-us/library/ms188365(SQL.90).aspx saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.