|
-
March 9th, 2002, 01:12 PM
#1
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;
}
-
March 9th, 2002, 01:29 PM
#2
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|