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
Errore nell'importazione di campi tipo data,da access a sql server 200...
giovedì 20 settembre 2007 - 08.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ciccios100
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 20 set 2007 - 08:01
Ciao a tutti,
Volevo chiedervi come mai provando a copiare un data base access,in un data base sql server 2005,con una OPENROWSET,non riesco a copiare i campi di tipo data/ora....mi viene questo messaggio:
Il provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)" ha restituito il messaggio "Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita.".
Messaggio 7341, livello 16, stato 2, riga 1
Impossibile ottenere il valore di riga corrente della colonna "[Microsoft.Jet.OLEDB.4.0].Data_prossimo_contatto" dal provider OLE DB "Microsoft.Jet.OLEDB.4.0" per il server collegato "(null)". Conversione non riuscita perché il valore di dati ha causato l'overflow del tipo di dati utilizzato dal provider.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 20 set 2007 - 08:16
Il campo di destinazione e il campo di origine sono entrambi di tipo DateTime?
http://blogs.dotnethell.it/alebadalin
ciccios100
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 20 set 2007 - 08:27
No,il campo destinazione è un varchar,ma se inserisco come campo destinazione un datatime mi esce questo messaggio di errore:
Conversione non riuscita durante la conversione di una stringa di caratteri nel tipo di dati datetime.
quindi ho pensato che durante l'importazione del database i campi data time vengono convertiti in stringhe....è giusto?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 20 set 2007 - 10:39
>No,il campo destinazione è un varchar,ma se inserisco come campo
>destinazione un datatime mi esce questo messaggio di errore:
>Conversione non riuscita durante la conversione di una stringa
>di caratteri nel tipo di dati datetime.
>quindi ho pensato che durante l'importazione del database i campi
>data time vengono convertiti in stringhe....è giusto?
No. Microsoft Access e SQL Server gestiscono le informazioni date/time in modo completamente diverso.
Se vuoi valorizzare una colonna datetime in SQL Server, devi utilizzare il formato ISO 'YYYYMMDD hh:mm:ss.ms' che non viene influenzato dai formati localizzati di data e ora.
Quindi, scrivi una SELECT che formatti la data in quel modo e vedrai che SQL Server l'accetterà senza battere ciglio
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
ciccios100
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 20 set 2007 - 11:29
Ciao Lorenzo
in effetti avevo pensato fosse un problema simile e ho trasformato i campi datatime di sql in campi char........così l'importazione è andata a buon fine,per fortuna non devo fare controlli su queste date!
Cmq ti ringrazio e terrò presente il tuo suggerimento x prossime importazioni.
Ciao e grazie mille
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 20 set 2007 - 12:55
>in effetti avevo pensato fosse un problema simile e ho trasformato
>i campi datatime di sql in campi char........così l'importazione
>è andata a buon fine,per fortuna non devo fare controlli su queste
>date!
Attenzione che comunque non è una bella cosa quella che hai fatto.
Ti può sempre scappare un UPDATE... SET ColData = 'pippo'...
Ora che hai effettuato l'importazione modifica la struttura della tabella defininendo una nuova colonna datetime e scrivi una query di UPDATE che formatti la stringa come ti ho illustrato in precedenza e che popoli tale colonna, dopo di che elimini la colonna char.
>Ciao e grazie mille
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
ciccios100
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 20 set 2007 - 13:55
>>......e scrivi una query di UPDATE che formatti la stringa come ti ho
>>illustrato in precedenza e che popoli tale colonna, dopo di che elimini la colonna char.
mi puoi dare un link con di query d'esempio o fornire tu un esempio veloce di query per la conversione che mi hai illustrato?
Grazie!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 20 set 2007 - 14:07
>mi puoi dare un link con di query d'esempio o fornire tu un esempio
>veloce di query per la conversione che mi hai illustrato?
Non posso dato che non conosco il tuo formato data
Comunque non devi fare altro che utilizzare delle funzioni di manipolazione delle stringhe (LEFT, RIGHT, SUBSTRING) componendo una stringa nel formato 'YYYYMMDD hh:mm:ss.ms'.
>Grazie!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
ciccios100
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 20 set 2007 - 14:11
Ok.........ti ringrazio ugualmente e ciao!
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 !