timotejvesel / vojne

Projekt pri predmetu Osnove podatkovnih baz
MIT License
0 stars 0 forks source link

Error: con must not be NULL #1

Closed timotejvesel closed 5 years ago

timotejvesel commented 5 years ago

V datoteki sql.r mi, ko zaženem vrstico dbSendQuery(conn, build_sql("CREATE TABLE ...")) javi napako "Error: con must not be NULL". Morda veste kako lahko napako odpravim?

jaanos commented 5 years ago

Sem poskusil s prijavo na svojo bazo, pa mi je ustvarilo prvo tabelo, pri drugi pa pride do napake, saj se sklicujeta na še neobstoječo tabelo.

Če poganjata vsako vrstico posebej, seveda poskrbita, da imata pri tem v conn aktivno povezavo (in jo na koncu prekinita). Meni sicer ni uspelo poustvariti prav take napake, kot jo vidva dobita. Seveda bo najbolje, da kar celoten program poženeta naenkrat (ali vsaj celoten tryCatch).

Mimogrede: svetujem, da se raje izogibata šumnikom v imenih stolpcev (in tabel).

timotejvesel commented 5 years ago

Na spletni strani https://dbplyr.tidyverse.org/news/index.html je zapisano kaj pomeni ta napaka, ki se je očitno začela pojavljati z novo verzijo (1.4.0) paketa dbplyr. Ker pa iz tega še vedno nisem ugotovil, kaj moram storiti, da odpravim napako, sem inštaliral starejšo verzijo tega paketa (1.2.1). S to verzijo pa napake ni bilo več in mi je ustvarilo tabelo.

jaanos commented 5 years ago

Aha, očitno nova različica zahteva, da se pri build_sql poda parameter con=conn (kako natanko se bo zgradila poizvedba, je namreč lahko odvisno od uporabljene podatkovne baze). Svetujem, da to kar storita pri vseh uporabah build_sql, da bo koda združljiva z novejšimi različicami dbplyr.