Вставить данные таблицы из набора данных .NET в файл данных SAS через OLEDB - PullRequest
0 голосов
/ 29 июля 2011

У меня есть код C # .NET с DataSet (System.Data.DataSet), содержащий одну таблицу данных, и я пытаюсь создать новую таблицу данных SAS на сервере SAS, а затем вставить в нее данные с помощью C #.

Сейчас я могу создать новую таблицу на сервере SAS, но я не уверен, как передавать данные.Я попытался использовать эту команду вставки (exportData - это DataSet):

"INSERT INTO SASUSER." + SAStableName + " SELECT * FROM " + exportData.Tables[0].TableName

Но он считает, что имя таблицы exportData должно быть именем библиотеки SAS.Все, что я получаю при поиске в Интернете, это примеры, которые извлекают данные только из SAS, что легко сделать с помощью типа команды TableDirect и метода заполнения OLEDB.Кажется, что не так просто полностью изменить процесс.

Примечание: я использую провайдер sas.IOMProvider в моей строке подключения.

Спасибо

РЕДАКТИРОВАТЬ: После всех поисков, которые я проводил, я полагаю, ты не сможешь этого сделать.Я попытался использовать параметризацию SQL, но поставщик SAS не поддерживает это.Наконец, я решил использовать простой цикл for для добавления значений, поскольку все мои исходные и целевые таблицы содержат одинаковые столбцы.Полупсевдокод:

DateTime time = (System.DateTime)exportTable.Rows[i]["time"];
object value = exportTable.Rows[i]["value"];
"INSERT INTO SASUSER." + tableName + " (time, value) VALUES (" + time.Ticks + " , " + value + ")"

У меня все еще проблемы с загрузкой дат в новую таблицу SAS с использованием предложения SQL INSERT (см. Код выше).Не уверен, как они должны быть отформатированы.Значения времени в исходной таблице (exportTable) являются объектами DateTime, поэтому приведение допустимо.

1 Ответ

0 голосов
/ 02 августа 2011

Вместо того, чтобы пытаться сделать это как ВСТАВКУ из набора данных, вы можете подойти к нему в противоположном направлении и сделать это как ЭКСПОРТ в таблицу (SASUSER.tablename)?

http://support.sas.com/documentation/cdl/en/acpcref/63184/HTML/default/viewer.htm#a003102702.htm

...