3,245
社区成员
发帖
与我相关
我的任务
分享
CString user=GetUserName();
CAdo ado;
CString username,password,id,text;
CString sTime,sYear,sMonth,sDay;
ado.InitADOConn(); //建立连接
CString sql1,sql2;
sql1="SELECT [MemId] FROM [TL_Member] WHERE UserName='" + user+"'";
ado.m_pRecordset=ado.OpenRecordset(sql1); //获得MemId记录集
id=(char*)(_bstr_t)ado.m_pRecordset->GetCollect("MemId"); //获得MemId
m_Log.GetWindowText(text);
if (text.IsEmpty())
{
MessageBox("日志不能为空!");
return ;
}
{0}
int main()
{
printf("hello world");
return 0;
}
{1}
HRESULT STDMETHODCALLTYPE
COleRichEditCtrl::IExRichEditOleCallback::GetClipboardData(CHARRANGE FAR *lpchrg, DWORD reco, LPDATAOBJECT FAR *lplpdataobj)
{
return E_NOTIMPL;
}
afx_msg void OnCopy() { Copy(); }
afx_msg void OnCut() { Cut(); }
afx_msg void OnPaste() { Paste(); }
afx_msg void OnSelectall() { SetSel(0, -1); }
afx_msg void OnUndo() { Undo(); }
afx_msg void OnClear() { Clear(); }
afx_msg void OnSelectFont();
void CRichEditDBDlg::DatabaseOperate(int nItem, int nType)
{
CString strNum;
strNum.Format("%d",nItem);
CString sql;
m_pRecord.CreateInstance(__uuidof(Recordset));
if ( nType == 0 )
sql = "select * from info order by id";
else
sql.Format("select * from info where id = '%d'",nItem);
try
{
m_pRecord->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
DWORD fileLen;
CFile cFile;
cFile.Open("tmp.rtf",CFile::modeRead);
fileLen = cFile.GetLength();
char *pbBuff = new char[fileLen];
cFile.ReadHuge(pbBuff,fileLen);
cFile.Close();
//保存 Ole 数据到数据库
VARIANT m_VarData;
m_VarData.vt = VT_UI1|VT_ARRAY;
SAFEARRAY *m_pSafe;
SAFEARRAYBOUND bound;
bound.cElements = fileLen;
bound.lLbound = 0;
m_pSafe = ::SafeArrayCreate(VT_UI1,1,&bound);
for ( LONG i = 0;i < fileLen ; i++ )
::SafeArrayPutElement(m_pSafe,&i,pbBuff ++);
m_VarData.parray = m_pSafe;
if ( nType == 0 )
{
m_pRecord->AddNew();
m_pRecord->GetFields()->GetItem("id")->Value = (_bstr_t)strNum;
m_pRecord->GetFields()->GetItem("explain")->Value = (_bstr_t)("第" + strNum + "条数据");
}
m_pRecord->GetFields()->GetItem("rtf")->AppendChunk(&m_VarData);
m_pRecord->Update();
}
catch(_com_error e)
{
::MessageBox(NULL,e.Description(),"错误",MB_ICONERROR);
}
if ( nType == 0 )
::MessageBox(NULL,"插入成功","提示",MB_ICONASTERISK);
else
::MessageBox(NULL,"修改成功","提示",MB_ICONASTERISK);
m_pRecord.Release();
}
void CRichEditDBDlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nSel = m_List.GetSelectionMark();
CString sql;
sql.Format("select * from info where id = '%d'",nSel);
m_pRecord.CreateInstance(__uuidof(Recordset));
try
{
m_pRecord->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
MessageBox(e.Description(),"错误",MB_ICONERROR);
}
LONG lDatasize = m_pRecord->GetFields()->GetItem("rtf")->ActualSize;
if(lDatasize>0)
{
_variant_t m_bitData;
char *m_pBuff;
m_bitData = m_pRecord->GetFields()->GetItem("rtf")->GetChunk(lDatasize);
if(m_bitData.vt == (VT_UI1|VT_ARRAY))
{
if(m_pBuff = new char[lDatasize + 1])
{
memset(m_pBuff,0,lDatasize + 1);
char *pBuff = NULL;
::SafeArrayAccessData(m_bitData.parray,(void**)&pBuff);
memcpy(m_pBuff,pBuff,lDatasize);
::SafeArrayUnaccessData(m_bitData.parray);
m_RichEditCtrl.StreamInFromResource(lDatasize,(BYTE *)m_pBuff);
}
}
}
*pResult = 0;
}
DWORD CALLBACK CENBView::MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)//读取
{
CFile* pFile = (CFile*) dwCookie;
ASSERT_KINDOF(CFile,pFile);
*pcb = pFile->Read(pbBuff, cb);
return 0;
}
DWORD CALLBACK CENBView::MyStreamOutCallback(DWORD dwCookie,LPBYTE pbBuff, LONG cb, LONG *pcb)//输出
{
CFile* pFile = (CFile*) dwCookie;
pFile->Write(pbBuff, cb);
*pcb = cb;
return 0;
}
BOOL CENBView::OnMySave()
{
CMainFrame* m_pMf=(CMainFrame*)AfxGetApp()->GetMainWnd();
CFile fis;
TCHAR tmpPath[_MAX_PATH+1];
GetTempPath(_MAX_PATH,tmpPath);
CString str_FileName;
long l_tempTreeID=m_pMf->m_wndTree.GetCurTreeID();
str_FileName.Format("%s%ld.tmp",tmpPath,l_tempTreeID);
fis.Open(str_FileName, CFile::modeCreate | CFile::modeWrite);
// fis.Open("C:\\a.rtf", CFile::modeRead | CFile::shareExclusive );
EDITSTREAM es;
es.dwCookie = (DWORD) &fis;
es.pfnCallback = MyStreamOutCallback;
CRichEditCtrl &m_edit = GetRichEditCtrl();
m_edit.StreamOut(SF_RTF, es);
CString str_sql; // I put the content in the file
fis.Close();
ADO &myado=theApp.m_Ado;
CENBDoc* m_pENBDoc=(CENBDoc*)m_pMf->GetActiveDocument();
if(!myado.OnInitADO(m_pENBDoc->GetPathName()))
{
AfxMessageBox("init ado出错!"+m_pENBDoc->GetPathName());
//return 0;
}
myado.m_pRecordset.CreateInstance(__uuidof(ADODB::Recordset));
str_sql.Format("select d_content,d_contentTxt from T_Tree WHERE D_TREEID=%ld",l_tempTreeID);
myado.m_pRecordset->Open((_variant_t)str_sql,myado.m_pConnection.GetInterfacePtr(),ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdText);
try
{
//m_pRecordset->AddNew();//添加新行
VARIANT m_bitdata;
fis.Open(str_FileName,CFile::modeRead);
DWORD m_filelen = fis.GetLength()+1;
char * m_bitbuffer = new char[m_filelen];
fis.ReadHuge(m_bitbuffer,m_filelen);
// fis.Flush();//
fis.Close();
DeleteFile(str_FileName);//删除
m_bitdata.vt= VT_ARRAY|VT_UI1;
SAFEARRAY * m_psafe;
SAFEARRAYBOUND m_band;
m_band.cElements = m_filelen;
m_band.lLbound = 0;
m_psafe = SafeArrayCreate(VT_UI1,1,&m_band);
for(long i=0; i < m_filelen ; i++)
{
SafeArrayPutElement(m_psafe,&i,m_bitbuffer++);
}
m_bitdata.parray = m_psafe;
myado.m_pRecordset->GetFields()->GetItem("d_content")->AppendChunk(&m_bitdata);
CString str_temp;
GetWindowText(str_temp);
myado.m_pRecordset->GetFields()->GetItem("d_contentTxt")->Value=(_bstr_t)str_temp;
myado.m_pRecordset->Update();
}
catch(_com_error e)
{
AfxMessageBox("操作失败:\n"+e.Description());
return 0;
}
CENBDoc *m_pEditDoc = (CENBDoc *)m_pMf->GetActiveDocument();
m_pEditDoc->SetModifiedFlag(0);
m_pMf->m_wndStatusBar.SetPaneText(0,"保存成功!");
// MessageBox("保存成功!",NULL,64);
return 1;
}
void CENBView::SetRtf(CFile* pInputFile )
{
EDITSTREAM es;
es.dwError = 0;
es.pfnCallback = MyStreamInCallback;
es.dwCookie = (DWORD)pInputFile;
CRichEditCtrl &m_edit = GetRichEditCtrl();
m_edit.StreamIn(SF_RTF, es);
}
BOOL CCoolTreeCtrl::OnTree2Rich()//点Tree跳到RichEditView显示出来
{
CMainFrame* m_pMf=(CMainFrame*)AfxGetApp()->GetMainWnd();
ADO &myado=theApp.m_Ado;
CString str_sql,str_FileName;
// myado.OnInitADO();
long l_TreeID=GetCurTreeID();
str_sql.Format("Select D_CONTENT FROM T_TREE WHERE d_TREEID=%ld",l_TreeID);
TCHAR tmpPath[_MAX_PATH+1];
GetTempPath(_MAX_PATH,tmpPath);
str_FileName.Format("%s%ld.tmp",tmpPath,l_TreeID);
myado.m_pRecordset=myado.GetRecordSet((_bstr_t)str_sql);
long lDataSize = myado.m_pRecordset->GetFields()->GetItem("D_CONTENT")->ActualSize;
char *m_pBuffer; //定义缓冲变量
// CENBDoc *m_pEditDoc = (CENBDoc *)m_pMf->GetActiveView()->GetDocument();//GetActiveDocument();
if(lDataSize > 0)
{
_variant_t varBLOB;
varBLOB = myado.m_pRecordset->GetFields()->GetItem("D_CONTENT")->GetChunk(lDataSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
if(m_pBuffer = new char[lDataSize+1]) //分配必要的存储空间
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(m_pBuffer,pBuf,lDataSize); //复制数据到缓冲区m_pBuffer
SafeArrayUnaccessData (varBLOB.parray);
CFile file;
file.Open(str_FileName, CFile::modeCreate | CFile::modeWrite);
file.Write(m_pBuffer,lDataSize);
file.Close();
// CFile fis(str_FileName,CFile::modeRead);
file.Open(str_FileName,CFile::modeRead);
CENBView *m_pEditView = (CENBView *)m_pMf->GetActiveView();
m_pEditView->SetRtf(&file);
// fis.Flush();
file.Close();
DeleteFile(str_FileName);
m_pMf->GetActiveDocument()->SetModifiedFlag(0);
}
}
}
else
{
m_pMf->GetActiveDocument()->OnNewDocument();//DeleteContents
}
return 1;
}