AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.09.2006, 15:06   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Я хочу зафигачить xpo-шник в мемо поле при помощи ODBCConnection
Я так понимаю, задача сводится к тому, чтобы закачать файл в поле типа TEXT на MS SQL? Для этого можно использовать команду самого MS SQL сервера BULK INSERT.

Т.е. логика примерно такая

Код:
static void Job_Connection(Args _args)
{
    str         strQuery;
    FileName    fileName;
    Connection  connection;
    Statement   statement;
    ;

    fileName = "\\\\MyServer\\ShareDir\\MyFile.xpo";
    strQuery = "SET NOCOUNT ON"+
                " IF Object_ID('tempdb..#tmpFile') IS NOT NULL DROP TABLE #tmpFile"+
                " CREATE TABLE #tmpFile (Content TEXT)"+
                " BULK INSERT #tmpFile FROM '"+fileName+"' WITH (ROWTERMINATOR='`')"+
                "";

    connection = new Connection();
    statement = connection.createStatement();
    statement.executeQuery(strQuery);
}
Здесь единственная проблема в том, что все это добро будет выполнятся со стороны сервера. Т.е. путь доступа к файлу надо писать именно со стороны сервера. Проще всего, иметь специальную расшаренную папку куда и класть файлы для закачки.

В качестве разделителя строк указываешь символ, которого заведомо не может быть внутри твоего XPO. Тогда весь файл будет закачан в одно поле.

Получишь временную табличку #tmpFile с единственным полем, содержимое которого - это твой файл XPO. Далее уже стандартным UPDATE перекидываешь это содержимое в нужное тебе поле.

Если опцию ROWTERMINATOR не указывать, то запись XPO произойдет построчно. Каждая строка XPO - отдельная строка в таблице #tmpFile.

Как удобнее хранить - одним куском или построчно - решай сам.

Ограничение в 1000 символов есть на поле таблицы, но не на символьные строки. Тут ограничивающим фактором будет не то, сколько сможет поддерживать AXAPTA, а то, сколько сможет "проглотить" драйвер ODBC или ADO через которые будет устанавливаться соединение с сервером. Это надо доку по соответсвующему драйверу читать.
За это сообщение автора поблагодарили: belugin (7).
Теги
sql server, odbc

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Версионность в MSSQL 2005 кто-нибудь использует? egorych DAX: Администрирование 0 11.01.2008 14:50
HELP! Созданная вручную таблица не сохраняется в MSSQL!!! ign_al DAX: Программирование 3 07.07.2004 12:34
MSSQL и DataDictionary MEGA_PROBLEM renat DAX: Программирование 1 29.09.2003 14:19
[MSSQL] object owner Dron AKA andy DAX: Администрирование 10 18.04.2003 12:37
"On MSSQL" or "On Oracle" alpine DAX: Прочие вопросы 5 19.03.2002 11:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:15.