Есть ли способ запустить код Visual FoxPro из SQL Server CLR или CMD? - PullRequest
0 голосов
/ 10 июля 2020

Приношу извинения за странный вопрос.

Короче говоря, у нас есть Visual FoxPro .prg, который выполняет запрос с использованием SQLEXEC(), а затем использует AFIELDS() для получения имени поля, поля Тип, ширина (длина) поля и десятичные разряды столбцов набора результатов для сохранения в таблицу SQL (даже если выбрано из временной таблицы или динамического c SQL).

What I ' Я ищу, чтобы он мог запускать этот .prg из SQL серверной CLR или даже с помощью xp_cmdshell без необходимости вручную открывать приложение Visual FoxPro.

Я уже пытался воссоздать эту функциональность в только CLR, но продолжал сталкиваться с проблемами с вложенными операторами INSERT INTO при использовании его в качестве хранимой процедуры CLR.

Кроме того, я попытался создать как функцию SQL CLR, но он попытается выполнить наши пользовательские перехватчики и выдать «Процедура не существует» ошибок, даже если они окружены IF Object_ID() IS NOT NULL.

Кроме того, поскольку некоторые запросы могут быть результатом s временной таблицы, я не могу использовать OPENQUERY или OPENROWSET.

Конечная цель здесь - полностью отказаться от нашего клиента Visual FoxPro, но возможность получить метаданные столбца чего угодно брошенный в него, сдерживает нас.

1 Ответ

0 голосов
/ 11 июля 2020

(На самом деле не ответ, писать здесь, как в комментарии, это будет беспорядок) Если я правильно вас понял, рассматриваемая таблица является таблицей VFP и имеет некоторые функции хранимых процедур (возможно, для триггеров вставки \ обновления \ удаления , или проверка достоверности).

Если это так, боюсь, вам не повезло. Лучше всего иметь COM-объект VFP между ними или SP VFP, использующий SetResultSet () - это может не сработать, если есть неподдерживаемые команды VFP.

С другой стороны, вы говорите, что он начинается с SqlExe c (), то скорее всего это не таблица VFP. Тогда, вероятно, вы могли бы создать функцию CLR. Не могли бы вы поделиться более подробной информацией вместе с кодами VFP и C#.

...