OPENROWSET SQL->MsAccess
От: Дюша Россия http://www.danfoss.com/russia
Дата: 18.05.10 13:44
Оценка:
Доброго времени суток,

Необходимо делать выгрузку данных из 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.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.