CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Jan 2002
    Posts
    28

    has anyone worked with...

    I searching anyone who workes with the Sypram Express OLE DB Library, because I have a big problem! I use this Code to add an new record but I get always a single Error! Can anyone help me?

    BOOL CSearch::OnInitDialog()
    {
    CDialog::OnInitDialog();

    // TODO: Zusätzliche Initialisierung hier einfügen

    CMP3Locater2002App *pApp = (CMP3Locater2002App *) AfxGetApp;

    if (!m_bIsAddMode && !m_sNummer.IsEmpty())
    {
    try
    {
    CSypODLRecordset mRs;

    CString sSQL = "SELECT * FROM MP3Lieder WHERE Nummer = ";
    sSQL += m_sNummer;

    mRs.Open(sSQL, &pApp->m_Conn, 2, SYPODL_RECORDSETTYPE_FORWARDONLY);

    if (!mRs.IsEOF())
    {
    mRs.GetFieldValue("Nummer", m_Nummer);
    mRs.GetFieldValue("Title", m_Title);
    mRs.GetFieldValue("Artist", m_Artist);
    mRs.GetFieldValue("Album", m_Album);
    mRs.GetFieldValue("Playtime", m_Playtime);
    mRs.GetFieldValue("Genre", m_Genre);
    mRs.GetFieldValue("Track", m_Track);
    mRs.GetFieldValue("Year", m_Year);
    mRs.GetFieldValue("Comment", m_Comment);
    mRs.GetFieldValue("kBits", m_kBits);
    mRs.GetFieldValue("Stereo", m_Stereo);
    }
    mRs.Close();

    }
    catch (CSypODLException& e)
    {
    e.DisplayError();
    return FALSE;
    }

    UpdateData(FALSE);
    }

    return TRUE; // return TRUE unless you set the focus to a control
    // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
    }

    //***************************************************************************************************


    void CSearch::AddRecord()
    {
    CMP3Locater2002App *pApp = (CMP3Locater2002App *) AfxGetApp();

    try
    {
    CSypODLRecordBase<CAccessor<CItemDisplayAccessor> > mRs;

    mRs.m_bHasClientCursor = false;
    mRs.Open("MP3Lieder", &pApp->m_Conn, 1, SYPODL_RECORDSETTYPE_FORWARDONLY);

    mRs.GetAccessor()->ClearRecord();
    mRs.GetAccessor()->m_Nummer_status = DBSTATUS_S_IGNORE;

    lstrcpy(mRs.GetAccessor()->m_Title, m_Title);
    lstrcpy(mRs.GetAccessor()->m_Artist, m_Artist);
    lstrcpy(mRs.GetAccessor()->m_Album, m_Album);
    lstrcpy(mRs.GetAccessor()->m_Playtime, m_Playtime);
    lstrcpy(mRs.GetAccessor()->m_Genre, m_Genre);
    lstrcpy(mRs.GetAccessor()->m_Track, m_Track);
    lstrcpy(mRs.GetAccessor()->m_Year, m_Year);
    lstrcpy(mRs.GetAccessor()->m_Comment, m_Comment);
    lstrcpy(mRs.GetAccessor()->m_kBits, m_kBits);
    lstrcpy(mRs.GetAccessor()->m_Stereo, m_Stereo);

    mRs.Insert();
    }
    catch(CSypODLException& e)
    {
    e.DisplayError();
    return;
    }
    }


    //******************************************************************************************************

    /*
    void CSearch::TagRead()
    {
    }
    */

    //******************************************************************************************************



    int CSearch::SucheDateien(CString nextdir)
    {
    CString curdir = nextdir;
    CString appname;
    CString ftpfilename;
    CString winfilename;

    m_Ordner = nextdir;

    CFileFind ftpFind;

    BOOL bContinue = ftpFind.FindFile(curdir + "\\*.*");

    while (bContinue > 0)
    {
    bContinue = ftpFind.FindNextFile();
    appname = ftpFind.GetFileName();

    if (appname == "." || appname == "..")
    {
    }
    else
    {
    if (ftpFind.IsDirectory() != 0)
    {
    nextdir = curdir + "\\" + appname;
    SucheDateien(nextdir);
    }
    else
    {
    if (m_filename.Find("*") == -1)
    {
    ID3_Tag myTag;
    myTag.Link(ftpFind.GetFilePath());

    ID3_Frame *myFrame;

    if (myFrame = myTag.Find(ID3FID_TITLE))
    {
    char title[1024];
    myFrame->Field(ID3FN_TEXT).Get(title, 1024);
    m_Title = title;
    }
    //Artist
    if (myFrame = myTag.Find (ID3FID_ORIGARTIST))
    {
    char artist[1024];
    myFrame->Field (ID3FN_TEXT).Get (artist, 1024);
    m_Artist = artist;
    }

    //Album
    if (myFrame = myTag.Find (ID3FID_ALBUM))
    {
    char album[1024];
    myFrame->Field (ID3FN_TEXT).Get (album, 1024);
    m_Album = album;
    }

    //Playtime
    if (myFrame = myTag.Find (ID3FID_SONGLEN))
    {
    char playtime[1024];
    myFrame->Field (ID3FN_TEXT).Get (playtime, 1024);
    m_Playtime = playtime;
    }

    //Genre
    if (myFrame = myTag.Find(ID3FID_ORIGALBUM))
    {
    char genre[1024];
    myFrame->Field(ID3FN_TEXT).Get(genre, 1024);
    m_Genre = genre;
    }


    //Track
    if (myFrame = myTag.Find (ID3FID_TRACKNUM))
    {
    char track[1024];
    myFrame->Field (ID3FN_TEXT).Get (track, 1024);
    m_Track = track;
    }

    //Year
    if (myFrame = myTag.Find (ID3FID_YEAR))
    {
    char year[1024];
    myFrame->Field (ID3FN_TEXT).Get (year, 1024);
    m_Year = year;
    }

    //Comment
    if (myFrame = myTag.Find (ID3FID_COMMENT))
    {
    char comment[1024];
    myFrame->Field (ID3FN_TEXT).Get (comment, 1024);
    m_Comment = comment;
    }
    AddRecord();
    }
    }
    }
    }

    ftpFind.Close();

    return 1;

    }




  2. #2
    Join Date
    Dec 2000
    Location
    Slovakia
    Posts
    1,043

    Re: has anyone worked with...

    I have never worked with that OLE DB provider, however, after reading your code, I thing, the problem is in cursor type, you have choosen in AddRecord() member.
    It is forward-only cursor and such cursor doesn't allow to insert new rows.
    Use another cursor type instead... (server side cursors)

    Martin


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured