2014-02-07 2 views
1

Я ищу, чтобы создать переопределение файла из VBA. У меня есть файл AS/400, связанный с базой данных, но мне нужно переопределить этот файл, чтобы использовать член файла AS/400. Каждый пользователь, выполняющий отчет в Access, будет иметь свой собственный член в AS/400. Мне нужно сделать это, чтобы несколько пользователей могли одновременно запускать отчет. Невозможно связать все файлы пользователя. Я нашел несколько утверждений, которые должны работать, но я не уверен, что я правильно заполнил парм. Это то, что у меня есть:кодировка для переопределения файла

rc = SQLAllocHandle(SQL_HANDLE_STMT, hstmt, hdbc) 
If rc = SQL_SUCCESS Then 
    stmt = "call qsys.qcmdexc(‘OVRDBF FILE(qspexrpt) TOFILE(bnldta/qspexrpt) MBR(" + userid + ") OVRSCOPE(*JOB)’, 0000000071.00000)”)" 
    rc1 = SQLExecDirect(hstmt, stmt, SQL_NTS) 
End If 

Что я ожидаю случаться: Связанный файл будет изменён с помощью элемента файла из команды OVRDBF. Проблема в том, что я не успешно возвращаю 0 в поле rc в инструкции SQLAllocHandle.

+0

Добро пожаловать to stackoverflow! можете ли вы поместить больше информации о том, что вы ожидаете, и что на самом деле не так? –

+1

Проблема с SQLAllocHandle или с SQLExecDirect? Достаточно ли 71 байта для хранения всей команды OVRDBF (включая возможные 10 байтов имени пользователя)? –

ответ

2

Лучшим вариантом было бы использовать CREATE ALIAS заявление, чтобы создать временный псевдоним, указывающий на библиотеку/файла/члена в QTEMP и выполнять свои операции с базой данных более, что:

CREATE ALIAS QTEMP.userid FOR BNLDTA.QSPEXPRT(userid) 

rc = SQLAllocHandle(SQL_HANDLE_STMT, hstmt, hdbc) 
If rc = SQL_SUCCESS Then 
    stmt = "CREATE ALIAS QTEMP." + userid + " FOR BNLDTA.QSPEXRPT(" + userid + ")" 
    rc = SQLExecDirect(hstmt, stmt, SQL_NTS) 
    If rc = SQL_SUCCESS Then 
     stmt = "SELECT * FROM QTEMP." + userid 
     rc = SQLExecDirect(hstmt, stmt, SQL_NTS) 
     If rc = SQL_SUCCESS Then 
      . . . 
     End If 
    End If 
End If 
+0

Можете ли вы предоставить пример vba для этого? – dino624

+0

@ dino624 Обновлено с примером. – jamesallman

+0

JamesA, Спасибо за код. – dino624

Смежные вопросы