2017-08-19 2 views
0

Existe-t-il un moyen de définir une connexion de base de données globale dans un Rnotebook afin de ne pas avoir à définir la connexion de base de données pour chaque segment SQL?Définir la connexion de base de données globale pour le segment SQL dans Rnotebook

Actuellement je dois le définir comme suit pour chaque morceau SQL:

```{sql connection = my_connection} 
select * from my_table 
``` 

Je voudrais juste être en mesure de faire ce qui suit:

```{sql} 
select * from my_table 
``` 

Répondre

1

De Rmarkdown docs:

Définition d'une connexion par défaut

Si vous avez plusieurs blocs SQL, il peut être utile de définir une valeur par défaut pour l'option de bloc de connexion dans le bloc d'installation, de sorte qu'il n'est pas nécessaire de spécifier la connexion pour chaque segment. Vous pouvez le faire comme suit:

```{r setup} 
library(DBI) 
db <- dbConnect(RSQLite::SQLite(), dbname = "sql.sqlite") 
knitr::opts_chunk$set(connection = "db") 
``` 

Ainsi, dans votre exemple, définir un crochet avec

```{r setup} 
# insert your my_connection declaration here 
knitr::opts_chunk$set(connection = "my_connection") 
``` 

et de mettre ce morceau avant que tous les autres morceaux.

+0

J'ai essayé cela et cela n'a pas semblé fonctionner dans les Rnotebooks, même si ce ne sont que des documents redistribués. Avez-vous essayé dans un Rnotebook? – ansek

+0

Oui, je l'ai fait et cela a bien fonctionné. Pouvez-vous donner un peu plus de code que nous pouvons voir? Êtes-vous sûr de mettre la "my_connection" entre guillemets et de ne pas envoyer l'objet? – Blaza

+0

Oui, j'ai mis la connexion entre guillemets. C'est étrange. Voici plus d'un échantillon. – ansek