void CZyView::OnDraw(CDC* pDC)
{
int a=1;
int buffer[60];
CString str[60],id,sj;
CZyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM TABLE1",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdUnknown);
m_pRecordset->MoveFirst();///移到首条记录
while(!m_pRecordset->adoEOF)
{
int tt1,tt2;
tt1 = m_pRecordset->GetCollect("帧数").iVal;///取得帧数字段的值
tt2=m_pRecordset->GetCollect("数据正文字节数").iVal;
id.Format("%d",tt1);
sj.Format("%d",tt2);
for(int i=1;i<55;i++)
{
buffer[i-1]=m_pRecordset->GetCollect("i").iVal;
str[i-1].Format("%d",buffer[i-1]);
pDC->TextOut(20*(i+3),20*a,str[i-1]);
}
pDC->TextOut(1,20*a,id);
pDC->TextOut(20,20*a,sj); m_pRecordset->MoveNext();///移到下一条记录
a++;
}
char* pFileName="test.dat";
TRY
{
file.Open(pFileName,CFile::modeCreate|CFile::modeReadWrite);
file.Write(&id,sizeof(__int32));
file.Write(&sj,sizeof(__int32));
for(int i=0;i<54;i++)
{
file.Write(&str[i],sizeof(__int32));
}
}
CATCH(CFileException,e)
{
#ifdef _DEBUG
afxDump<<"File could not be opened"<<e->m_cause<<"\n";
#endif
}
END_CATCH
}
从数据库里读出数据并在视图中显示,可一改变视图大小就报错,为什么??
{
int a=1;
int buffer[60];
CString str[60],id,sj;
CZyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM TABLE1",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdUnknown);
m_pRecordset->MoveFirst();///移到首条记录
while(!m_pRecordset->adoEOF)
{
int tt1,tt2;
tt1 = m_pRecordset->GetCollect("帧数").iVal;///取得帧数字段的值
tt2=m_pRecordset->GetCollect("数据正文字节数").iVal;
id.Format("%d",tt1);
sj.Format("%d",tt2);
for(int i=1;i<55;i++)
{
buffer[i-1]=m_pRecordset->GetCollect("i").iVal;
str[i-1].Format("%d",buffer[i-1]);
pDC->TextOut(20*(i+3),20*a,str[i-1]);
}
pDC->TextOut(1,20*a,id);
pDC->TextOut(20,20*a,sj); m_pRecordset->MoveNext();///移到下一条记录
a++;
}
char* pFileName="test.dat";
TRY
{
file.Open(pFileName,CFile::modeCreate|CFile::modeReadWrite);
file.Write(&id,sizeof(__int32));
file.Write(&sj,sizeof(__int32));
for(int i=0;i<54;i++)
{
file.Write(&str[i],sizeof(__int32));
}
}
CATCH(CFileException,e)
{
#ifdef _DEBUG
afxDump<<"File could not be opened"<<e->m_cause<<"\n";
#endif
}
END_CATCH
}
从数据库里读出数据并在视图中显示,可一改变视图大小就报错,为什么??
解决方案 »
- 请教访问服务器上的共享文件夹的问题。 客户端的程序要求可以访问服务器上的一个共享文件夹。因为一些图片放在服务器的一个共享文件夹下。
- 救命啊
- 请问:已知一个窗口句柄,如何得到窗口?
- User breakpint called from code at 0x77FA144B我没有设制任何断点,为什么会出这个提示呢??
- 过了高程的兄弟能否给点建议,偶今年10月要考了
- Edit编辑框设为只读后,鼠标按一下还是有插入符,如何去掉插入符呢?感觉就像不能编辑一样。
- 如何将openssh编译成windows下可以使用的
- 如何获取剪贴板的内容
- 什么是实例呀?
- 怎样屏蔽非法输入
- 很惭愧,在这这么久了,居然没有认识几位朋友。想和大家交个朋友。
- 请教:如何将文本文件的X,Y坐标读到界面并显示成点
m_pRecordset.CreateInstance("ADODB.Recordset");
。。
m_pRecordset->Open
每次都要建立和open吗,可以在执行前检测一下,否则肯定错。
你最好这样:
1. 把数据库的读取放到文档类的某个函数中,假设为ReadDataFromDB()。从数据库中读取的数据保存到文档类的某个成员变量中,假设为m_lstData;
2. 在OnDraw中,通过访问GetDocument()->m_lstData来显示数据。因为在每一次视图窗口需要重画时都会调用OnDraw,所以你不必频繁访问数据库。
3. 在文档类中适当的地方(譬如OnOpenDocument中)或者在需要更新数据的其他地方,调用
CMyDocument::ReadDataFromDB,以刷新数据。
4. 在刷新数据时别忘了刷新视图窗口(调用CMyView::InvalidateRect(0))
9712210(9712210) Mackz(在相互) ,我在关闭视图的时候都close了的。