Доброго времени суток,
Необходимо делать выгрузку данных из SQL в MsAccess из ASP.NET приложения.
Делаю так:
Public Sub CopyAttachments(ByVal connection As SqlConnection, ByVal accountId As Integer, ByVal dbPath As String, ByVal cnTarget As OleDb.OleDbConnection)
SqlHelper.ExecuteNonQuery(cnTarget, "CREATE TABLE Attachments([Issue ID] int NOT NULL, [File Name] text(255) NULL, [Date] datetime NULL, [Description] text(50) NULL)")
Dim query As String = "INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', '" & dbPath & "'; 'Admin'; '','SELECT [Issue ID],[File Name],[Date],[Description] from Attachments') SELECT [issue_no] as [Issue ID],[file_name] as [File Name],[file_date] as [Date],[file_description] as [Description] FROM [Attachments] WHERE account_id = @account_id"
Dim sqlParams As SqlParameter() = New SqlParameter() { _
New SqlParameter("@account_id", accountId) _
}
SqlHelper.ExecuteScalar(connection, CommandType.Text, query, sqlParams)
End Sub
Локально (SQL и IIS бегут на одной машине) все работает.
В production, где SQL и IIS бегут на разных серверах, возникает проблема.
Запрос выполняется успешно, если запустить его из SQL management studio. Однако, при вызове из ASP.NET приложения, получаю ошибку:
System.Data.SqlClient.SqlException: Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)"
Читал вот
здесь про права доступа, но приведенное там решение не помогло.
Please help.