Юлия ODBC Неверное состояние курсора - PullRequest
0 голосов
/ 27 октября 2019

Извините, вопрос новичка. Я использую ODBC.jl, чтобы попытаться автоматизировать некоторые текущие запросы SQL. Я получаю ответ "[ODBC] 24000: [Microsoft] [Драйвер ODBC SQL Server] Недопустимое состояние курсора".

/ ****************************************************** /

Установите библиотеки, которые мы будем использовать

using ODBC
using DataFrames
using DataStreams

Создать подключение к серверу

Обратите внимание, что сначала необходимо создать ODBC-соединение, чтобы это работало

db = ODBC.DSN("XX.X.XXXX.2")

Установить удержаниеБаза данных на сервере, если она еще не существует

Это приведет к ошибке, но будет работать, если ее нет.

TEST = ODBC.query(db, "SET NOCOUNT ON; if db_id('ReportingTables_TEMP') is null begin create database Rate_Tables_TEMP end")

/ *************************************************/

Когда я запускаю, я получаю "ODBC.ODBCError («API.SQLFetchScroll (q.stmt, API.SQL_FETCH_NEXT, 0) не выполнен; код возврата: -1 => SQL_ERROR») », а затем я проверяю объявление REPL, чтобы увидеть ответ о состоянии недопустимого курсора. Что я хотел бы сделать, так это сделать мой код запроса более безразличным, сначала проверив и установив хранилище для данных.

Приветственные мысли, так как онлайн на данный момент бесполезен (размер таблицы непроблема, и триггеры не присутствуют, так как это очень новая настройка SQL).

Спасибо

1 Ответ

0 голосов
/ 31 октября 2019

Мне удалось решить этот вопрос, изменив оператор из запроса на выполнение! «ReportingTables созданы» заканчиваются, если db_id («ReportingTables») не равно null. «ReportingTables существуют» ")

Как указано в документации ODBC.jl, выполнить! это где мы не ожидаем ответа. В моем понимании то, что запускалось, было генерацией ответа (создание базы данных в SQL), но я предполагаю, что это ответ Джулии.

Это незначительное изменение открывает мне возможность push & pullданные из разных серверов и баз данных SQL.

Это может быть очень полезно для меня, так как у меня есть 10-15 различных таблиц, которые в настоящее время у меня есть процесс SQL для загрузки, объединения, манипулирования.

Из моих экспериментов Юлия немного быстреекопирование данных с одного сервера / базы данных на другой. Кажется, быстрее при соединениях по сравнению с SQL. Мне еще предстоит поэкспериментировать на стороне манипуляции, но я надеюсь, что Юлия и здесь будет быстрее.

Надеюсь, это будет полезно для других.

...