Domanda

Ho configurato il driver ODBC in modo che MS Excel possa importare i dati in un foglio di calcolo solo bene.

Tuttavia, quando provo a stabilire la connessione con r, usando

ch <- odbcConnect(leprosyDHISdb, uid = leprosyDHISid, pwd = leprosyDHISpw)
.

Quindi ottengo l'errore

Warning messages:
1: In odbcDriverConnect("DSN=dhis2;UID=dhis2_viewer;PWD=*********") :
  [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect("DSN=dhis2;UID=dhis2_viewer;PWD=*********") :
  ODBC connection failed
.

Cosa potrebbe rendere ODBC fallire per r, ma non per Excel?

È stato utile?

Soluzione 3

Non sono sicuro se questo è il modo più corretto per farlo, ma questo funzionava per me.

    .
  1. Vai al foglio di calcolo in Excel con i dati importati.
  2. Fare clic su Dati -> Connessioni
  3. Fare doppio clic sulla query
  4. Fare clic sulla scheda Definizione
  5. Copia la stringa di connessione e incollalo in R all'interno della funzione odbcDriverConnect:

    myconn <-odbcdriverconnect (driver driver= sql server; server= fooserver; uid= foo_viewer; pwd= 1pitydfoo !; app= Microsoft Office 2010; wsid= foocomputName; database= DTS ")

  6. È anche possibile copiare il testo del comando e incollarlo in R all'interno della funzione sqlQuery:

    MyData <- SQLQuery (MyConn ", seleziona dts.dts_id, dts.dts_no, dts.unit_code, dts.originator, dts.doc_type_id, dts.doc_date, dts.subject, dts.remarks, dts.status, dts.is_confidential, dts.created_by, dts.date_Created, dts.updated_by, dts.date_updated, dts.timestamp da dts.dbo.dts dts ")

Altri suggerimenti

Controllare se si utilizza una versione da 32/64 bit di R, controllare anche se la connessione ODBC è 32/64 bit.

Per configurare un DSN a 32 bit utilizzando Windows navigare nella seguente cartella C: \ Windows \ Syswow64

Per configurare un DSN a 64 bit utilizzando Windows navigare nella seguente cartella C: \ Windows \ System32

Modifica: il seguente blog è una guida eccellente che potresti trovare utile

http://sandymuspratt.blogspot.co.uk/2013/01/getting-access-Data-into-R.html

Ho avuto lo stesso problema di recente.Ecco come ho risolto:

1) Vai alla pagina: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html e seleziona il sistema operativo e la versione pertinente a te.

2) Scarica il pacchetto utilizzando il collegamento in "Pacchetto client istantaneo - ODBC: librerie aggiuntive per abilitare le applicazioni ODBC"

3) Estrai i file in crive c come c: \ istantanclient_12_1 ed eseguire odbc_install.exe in esso.

4) Prova a connetterti di nuovo.

Questo lavoro mi ha aiutato:

    .
  1. Vai all'Amministratore dell'origine dati ODB ([Win] + ODBC ...)
  2. Aggiungi nuovo DNS (non importa il tipo, mantenendo DNS dell'utente);Punta la fonte al DB desiderato e nominare il nuovo DNS (ad es. Dbadhocforr)
  3. Torna a r per definire il canale (basta chiamare il DNS w / o eventuali parametri aggiuntivi): CH <-ODBCCONNECT ("SQL Server")
  4. Definisci la query SQL utilizzando il canale: Q1 <- SQLQuery (CH ", selezionare Top 1000 * da dbo.rtesttable")

Prova a utilizzare OdbcDriverConnect e una stringa di connessione.

ch <- odbcDriverConnect("Driver={Oracle in OraClient11g_home1};Dbq=leprosyDHISdb;Uid=leprosyDHISid;Pwd=leprosyDHISpw;")
.

Potrebbe essere necessario controllare https://www.connectionstrings.com/ per la tua stringa di connessione specifica. Questo è quello che ho usato .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top