zoukankan      html  css  js  c++  java
  • 大四中软实习笔记20130307

    1 Winsock函数的注意点

    1.1 函数的返回值
    accept
    recv:真正收到的字节数
            buf_recv---数据缓存
                       协议缓存

    send:真正发出去的字节数
            buf_send---数据缓存
                       协议缓存

    connect


    1.2 利用/r/n
    编辑框的属性要改:
    多行
    支持return

    2 ODBC数据库访问技术
    2.1 数据库的建立
    通过Access2003建立1个数据库-----db_student.mdb
       包含了1个表-----table_student

    2.2 建立ODBC的数据源
    控制面板-----管理工具-----数据源ODBC
    意义:让db_student.mdb------dsn_student 一一对应,以后程序中就只需要访问dsn_student

    2.3 VC建立基于对话框的工程
    步骤:
    1 在stdafx.h中增加
    #include <afxdb.h>---------为了声明准备使用的ODBC类的原型

    2 在类视图上利用右键-------建立1个set派生类(基类是CRedordSet)
    注意:用到了dsn/table,选动态记录集

    3 修改界面,增加4个编辑框,用于显示 number  name  age  math

    4 关联成员变量

    5 给上面的关联变量 赋值
    问题:需要记录集对象的地址,才能赋值
    步骤:
    1 在dlg类下增加成员变量 ------记录集对象的地址
    COdbc1Set * m_pSet;

    2 在dlg类下增加成员变量 ------数据库对象(不是地址)
    CDatabase m_db;

    3 在OnInitDialog函数中,增加代码
        m_pSet=new COdbc1Set(&m_db);
        m_pSet->Open(CRecordset::dynaset,"select * from table_student");
        m_edit_number=m_pSet->m_number;
        m_edit_name=m_pSet->m_name;
        m_edit_age=m_pSet->m_age;
        m_edit_math=m_pSet->m_math;
        UpdateData(FALSE);
    第1条记录就可以显示在界面上了   
       

    6 ODBC的概念
    6.1 ODBC
    程序员-------ODBC的成员函数--------数据库(各种)

    6.2 我们学,通过MFC下的2个ODBC相关类,来操作ODBC
    CDdatabase
    它和我们建立的dsn相关

    CRecordSet
    它和当前记录相关
    记录集在内存里----------数据库在磁盘上
    记录集-----是某个table的复制品,而且在内存里    table_student
      使用select * from table_student的SQL语句查询出来的结果,放在内存里
     
     
    6.3 游标-------记录集的游标
    刚打开记录集时,在第1条
    如果删除记录(当前),游标都不会动--------假删(只是做了删除标记)------真删(Requery,而且游标自动到第1个)
    插入记录后,游标仍然不动。实际上是追加。

    代码:
    void COdbc1Dlg::OnButtonNext()
    {
        // TODO: Add your control notification handler code here
        m_pSet->MoveNext();
        if(m_pSet->IsEOF())        //判断游标是否到数据库外面了。IsEOF为数据库后面,IsBOF为数据库前面
        {
            m_pSet->MoveFirst();
        }
        m_edit_number=m_pSet->m_number;
        m_edit_name=m_pSet->m_name;
        m_edit_age=m_pSet->m_age;
        m_edit_math=m_pSet->m_math;
        UpdateData(FALSE);
    }

    void COdbc1Dlg::OnButtonAppend()
    {
        // TODO: Add your control notification handler code here
        m_pSet->AddNew();
        UpdateData();
        m_pSet->m_number=m_edit_number;
        m_pSet->m_name=m_edit_name;
        m_pSet->m_age=m_edit_age;
        m_pSet->m_math=m_edit_math;
        m_pSet->Update();
        m_pSet->MoveLast();
       
    }

    void COdbc1Dlg::OnButtonDelete()
    {
        // TODO: Add your control notification handler code here
        m_pSet->Delete();
        m_pSet->Requery();
        m_edit_number=m_pSet->m_number;
        m_edit_name=m_pSet->m_name;
        m_edit_age=m_pSet->m_age;
        m_edit_math=m_pSet->m_math;
        UpdateData(FALSE);


    }

    void COdbc1Dlg::OnButtonEdit()
    {
        // TODO: Add your control notification handler code here
        m_pSet->Edit();
        UpdateData();
        m_pSet->m_number=m_edit_number;
        m_pSet->m_name=m_edit_name;
        m_pSet->m_age=m_edit_age;
        m_pSet->m_math=m_edit_math;
        m_pSet->Update();
    }

  • 相关阅读:
    N in 1 & 多重引导光盘制作
    可启动 ISO 合并、Windows 安装光盘合集
    VS 2005 VC++ 文件类型
    Windows 无人值守安装应答文件详解
    30种下载Youtube视频的方法
    解释YOUTUBE FLV 地址
    Windows下进程通信方式[转]
    进程通讯 DELPHI的类实现
    c#.net常用函数列表
    Javascript, How to make a Dress Up Game (Drag and Drop)
  • 原文地址:https://www.cnblogs.com/blueswitkey/p/2953598.html
Copyright © 2011-2022 走看看