Announcement

Collapse
No announcement yet.

Methode wird beim Client nicht aufgerufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Methode wird beim Client nicht aufgerufen

    Hallo,

    ich habe eine Methode für einen DCOM-Server erstellt:

    <PRE>
    STDMETHODIMP TRemasterServerImpl::StoreView(long lRemaster, long lPos,
    long lItem, long lMeasurement, long* plWidth, long* plHeight,
    BSTR* pstrArticle, long* plJob, long* plOpt, long* plDoppelOpt,
    long* plLockId, long* plReservation, DATE* pLastModTime, long* plError)
    try
    {
    m_DataModule->ADOQuery1->Close();
    m_DataModule->ADOQuery1->SQL->Clear();
    m_DataModule->ADOQuery1->SQL->Add("SELECT * FROM ReMaDaten WHERE
    Remaster=:Remaster");
    m_DataModule->ADOQuery1->SQL->Add("AND Pos=:Pos AND Item=:Item");
    m_DataModule->ADOQuery1->SQL->Add("AND Measurement=:Measurement");
    m_DataModule->ADOQuery1->Parameters->ParamByName("Remaster")->Value =
    strRemaster;
    m_DataModule->ADOQuery1->Parameters->ParamByName("Pos")->Value =
    strPos;
    m_DataModule->ADOQuery1->Parameters->ParamByName("Item")-Value =
    strItem;
    m_DataModule->ADOQuery1->Parameters->ParamByName("Measurement")->Value
    = strMeasurement;
    m_DataModule->ADOQuery1->Prepared;
    m_DataModule->ADOQuery1->Open();
    m_DataModule->ADOQuery1->Active = true;

    *plWidth = m_DataModule->ADOQuery1->Fields->Fields[4]->Value;
    *plHeight = m_DataModule->ADOQuery1->Fields->Fields[5]->Value;
    *pstrArticle = m_DataModule->ADOQuery1->Fields->Fields[7]->Value;
    *plReservation = m_DataModule->ADOQuery1->Fields->Fields[12]->Value;
    *pLastModTime = m_DataModule->ADOQuery1->Fields->Fields[13]->Value;
    *plError = 0;

    hr = S_OK;
    }
    catch (...)
    {
    hr = E_FAIL;
    }
    return hr;
    }
    </PRE>

    Diese Methode wird beim Client folgendermassen aufgerufen:

    <PRE>
    {
    IRemasterServerDisp RemasterServer;

    long Remaster = 0;
    long Pos = 0;
    long Item = 0;
    long Measurement = 0;
    long *lWidth;
    long *lHeight;
    long *lJob;
    long *lOpt;
    long *lDoppelOpt;
    long *lLockId;
    long *lReservation;
    long *lError;
    wchar_t **Article;
    double *LastModTime;

    AnsiString strWidth;
    AnsiString strHeight;
    AnsiString strArticel;
    AnsiString strJob;
    AnsiString strOpt;
    AnsiString strDoppelOpt;
    AnsiString strrLockId;
    AnsiString strReservation;
    AnsiString strLastModTime;

    __try
    {
    if (!DCOMConnection1->Connected)
    DCOMConnection1->Connected = true;
    RemasterServer.Bind(DCOMConnection1->GetServer());
    RemasterServer->StoreView(Remaster, Pos, Item, Measurement, lWidth,
    lHeight, Article, lJob, lOpt, lDoppelOpt, lLockId,
    lReservation, LastModTime, lError);
    strWidth = (*lWidth);
    Edit1->Text = strWidth;
    }
    __finally
    {
    if (RemasterServer.IsBound())
    RemasterServer.Unbind();
    }
    </PRE>

    Mein Problem ist, das die Methode beim DCOM Server überhaupt nicht aufgerufen wird. Habe ich etwas falsch gemacht?

    Jörg
Working...
X