VC6.0连接ACCESS数据库

合集下载

Vc++6.0通过ODBC操作Oracle数据库

Vc++6.0通过ODBC操作Oracle数据库

Vc++6.0通过ODBC操作Oracle数据库Visual C ++6.0 中提供了CDatabase 、CRecordset 、CRecordView、CDBException、Clong Binary 和CFieldExchange 6 个类,这些类封装了ODBC SDK函数,从而使用户可以无需了解SDK函数就可以很方便地操作支持ODBC 的数据库。

Vc++6.0通过ODBC操作数据库(如sqlsever、Access)代码可以直接移植到操作Oracle中,以下这段代码就是一个Vc++6.0连接sqlsever的代码,连接Oracle数据库时,如不需验证,在SQLConnect()加入用户名和密码就可以了,如scott tiger 其连接数据库的过程,就是通过ODBC连接的一般方法// 定义环境句柄、连接句柄、语句句柄SQLHENV henv;SQLHDBC hdbc;SQLHSTMT hstmt;// 定义返回值SQLRETURN rtcode;//m_strSqlStmt="123456";// 分配环境句柄rtcode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);if(rtcode == SQL_SUCCESS || rtcode == SQL_SUCCESS_WITH_INFO){// 设置环境属性(ODBC版本号)rtcode = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ ODBC3,0);if(rtcode == SQL_SUCCESS || rtcode == SQL_SUCCESS_WITH_INFO){// 分配连接句柄rtcode = SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc);if(rtcode == SQL_SUCCESS || rtcode == SQL_SUCCESS_WITH_INFO){// 设置连接属性(登录超时 = 10s)SQLSetConnectAttr(hdbc,SQL_ATTR_LOGIN_TIMEOUT,(void* )10,0);// 连接数据源LPTSTR lpstrDsn = m_strDB.GetBuffer(m_strDB.GetLength());rtcode = SQLConnect(hdbc,(SQLCHAR*)lpstrDsn,SQL_NTS,(SQLCHAR*)"scott",SQL_NTS,(SQLCHAR*)"tiger",SQL_NTS);if(rtcode == SQL_SUCCESS || rtcode == SQL_SUCCESS_WITH_INFO){// 分配语句句柄rtcode = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);if(rtcode == SQL_SUCCESS || rtcode == SQL_SUCCESS_WITH_INFO){/******** 查询数据 ********/// 定义参数SQLCHARsqlSelList[SEL_LIST_LEN],sqlTabList[SEL_TAB_LEN],sqlConList[SEL _CON_LEN];// 获得参数CString strList = _GetSelList();CString strTab = _GetSelTab();CString strCon = _GetSelCon();strcpy((char*) sqlSelList ,strList);strcpy((char*) sqlTabList ,strTab);strcpy((char*) sqlConList ,strCon);// 直接执行char str[2000];strcpy( str, "SELECT ");strcat( str, strList);strcat( str, " FROM ");strcat( str, strTab);if( !strCon.IsEmpty()){strcat( str, " WHERE ");strcat( str, strCon);}rtcode = SQLExecDirect( hstmt, (SQLCHAR*)str,SQL_NTS);m_strSqlStmt = CString(str);UpdateData(FALSE);// 释放语句句柄SQLFreeHandle(SQL_HANDLE_STMT,hstmt);}// 断开连接SQLDisconnect(hdbc);}// 释放连接句柄SQLFreeHandle(SQL_HANDLE_DBC,hdbc);}}// 释放环境句柄SQLFreeHandle(SQL_HANDLE_ENV,henv);。

基于VC6.0+ACCESS数据库学生成绩管理系统

基于VC6.0+ACCESS数据库学生成绩管理系统

一、题目基于VC6.0+access数据库的学生成绩管理系统二、主要任务与要求主要任务:学生成绩管理系统是一个教育单位不可缺少的部分。

一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。

设计该系统主要适用于小范围班级学生信息管理,该系统可方便教师对班级学生成绩信息的管理,同时以电子档案的形式存入,也有助于对学生信息的保存,不仅减少了以传统文件档案形式存放的各种缺点,而且可以更好的保证信息的完整性。

本系统主要完成对成绩浏览、成绩记录删除、成绩记录添加和记录查询等多种数据信息的管理,包括数据库中表的录入、修改、删除等。

系统还可以完成对各类信息的查询、录入、修改、删除等功能。

要求:建立学生成绩管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。

帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。

该系统应该要求简单,对电脑的配置要求不高,一般机器均可运行,操作也应该尽量简单易懂,对于任何教师都能很快的学会操作。

同时系统中应包含一般查询学生成绩信息所需的操作,例如成绩浏览、成绩添加、成绩删除、成绩查询。

三、起止日期 2012年03 月 15日至 2012年 05 月15日指导教师签字(盖章)系主任签字(盖章)年月日河南理工大学万方科技学院毕业设计(论文)评阅人评语专业班级学生姓名题目评阅人签字(盖章)职称工作单位年月日河南理工大学万方科技学院毕业设计(论文)评定书专业班级学生姓名题目指导教师签字(盖章)职称年月日河南理工大学万方科技学院毕业设计(论文)答辩许可证经审查,专业班同学所提交的毕业设计(论文),符合学校本科生毕业设计(论文)的相关规定,达到毕业设计(论文)任务书的要求,根据学校教学管理的有关规定,同意参加毕业设计(论文)答辩。

基于VC6.0ACCESS的图书馆管理系统

基于VC6.0ACCESS的图书馆管理系统

目录一、设计目的 (2)1.1读者管理 (2)1.2采编管理 (2)1.3流通管理............................................ 错误!未定义书签。

1.4统计管理............................................ 错误!未定义书签。

1.5查询管理............................................ 错误!未定义书签。

1.6其它辅助功能........................................ 错误!未定义书签。

二、系统的功能分析 (3)2.1系统软件结构图 (3)2.2系统边界图......................................... 错误!未定义书签。

2.3安全设计 (4)三、系统的数据库设计........................................ 错误!未定义书签。

3.1数据字典........................................... 错误!未定义书签。

3.2逻辑结构与物理结构设计............................. 错误!未定义书签。

3.2.1 逻辑结构设计、 (6)3.2.2 物理结构设计 (7)3.3数据库表设计 (8)四、系统的程序设计与实现 (11)4.1程序的运行环境 (11)4.2程序的详细设计 (11)五、系统的运行结果与分析 (26)5.1运行后的界面 (26)5.2数据库脚本 (29)一、设计目的图书管理系统主要包括系统管理、读者管理、图书采购、图书编目、图书流通、统计、查询等一系列的功能。

1、读者管理(1).新学期建立新班级,删除毕业班读者。

(2).为新生办理新借阅证。

(3).读者管理能完成读者调动、借书证挂失、补办、停止借阅、单独打印读者条码等日常事务。

vb6.0如何连接有密码的ACCESS数据库

vb6.0如何连接有密码的ACCESS数据库

vb6.0如何连接有密码的ACCESS数据库以前曾看过介绍如何在Visual Basic中连接和使用Access数据库的技术文章,实际上在专业的数据库软件开发中,为了确保数据库中信息的安全,往往要求对数据库文件进行加密,以防止非法用户通过其它的常规手段将其打开。

那么,在Visual Basic中如何建立与加密的数据库的连接呢?笔者在开发本校的宿舍管理信息系统中,总结了一些方法和技巧,现写出来与同行交流。

一、建立数据库因为在Visual Basic 6.0中有的数据库连接方式不支持Access 2000版本格式的数据库,为了便于说明问题,本文所提的数据库以Access 97版本数据库为例。

在Microsoft Access 97中建立一个数据库,如:ssgl.mdb,并设置密码,如:“1234”,再将数据库文件和VB中创建的工程文件放在同一目录下。

如果用户的计算机上只有Access 2000的话,可以先在Access 2000中建立ssgl.mdb数据库,并设置密码,再用Access 2000中的“数据库实用工具”将数据库转换成Access 97版本的格式。

当然也可以直接在Visual Basic 6.0集成开发环境中通过“可视化数据管理器”来创建数据库,再到Access 97中设置密码。

通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。

二、连接加密的Access数据库在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。

开发人员可以根据自身的条件和用户的需求进行选择。

限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。

关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。

1、使用控件① Data控件Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。

Visual Basic 6.0绑定Access数据库教程

Visual Basic  6.0绑定Access数据库教程

End Sub
Private Sub Command2_Click() If conn.State = 0 Then
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\试验录入数据库.mdb;Persist Security Info=False"
End If
sql = "insert into [users]([username],[password]) values('" & Text1.Text & "','" & Text2.Text & "')"
Set rs = New ADODB.Recordset
录 入
rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic 'MsgBox "录入成功!"
sql = "select * from users" rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic Set MSHFlexGrid1.DataSource = rs
'表头 MSHFlexGrid1.TextMatrix(0, 0) = "唯一编号" MSHFlexGrid1.TextMatrix(0, 1) = "账号" MSHFlexGrid1.TextMatrix(0, 2) = "密码"

解决VC6不能访问ACCESS2000数据库的问题

解决VC6不能访问ACCESS2000数据库的问题

4.3.4解决V i sua I C++6. 0不能访问Access2000数据库的问题建词库时,我们用的Access版本是2000,当在Visual C++6. 0中用MFC DAO类访问Access2000数据库时,会得到“Unrecognized database format.”错误消息,即“不能辨认的数据库格式”,在Access97中则没有这种错误提示,程序能正常运行。

VC6不能访问Access2000,原因何在?如何解决?作如下分析。

1.错误原因原因是MFC使用了错误的DAO DLL。

默认情况下,Visual C++6. 0使用的MFC DAO类加载的是DA03. 5 (Dao350. dl l) 。

DA03. 5使用Microsoft Jet3.5数据库引擎,而它只能打开支持Jet3. 5或更老版本的数据库。

Access2000使用支持Jet4.0的数据库文件,它对Jet3. 5来说是不能辨认的。

为了能使用MFC DAO类来操作Access2000数据库,我们需要DA03. 6 (Dao360. d11)。

DA03. 6使用Jet4. 0引擎,它能打开任何Access数据库格式。

当MFC调用AfxDaoInit()初始化DAO时,MFC首先要判断加载了哪个版本的DAO,如下:void AFXAPI AfxDaoInit()//在daocore. cpp文件中(VC安装路径MFC\SRC目录下) {..........BYTE bUseDao=_AfxDetermineDaoVersion();..........switch (bUseDao){case 35://Use DA0350.DLLbreak;case 30://Use DA0300.DLLbreak;case 36://Use DA0360. DLLbreak:}.........._AfxDetermineDaoVersion()依据MFC是静态的还是动态的而不同,当使用静态的MFC时,如下:#ifndef AFXDLL#if _MFC_VER>=0x0601#define _AfxDetermineDaoVersion()(36)#else#define _AfxDetermineDaoVersion()(35)#endif当使用动态的MFC时,如下:static inline BYTE _AfxDetermineDaoVersion(){BYTE bReturn=35;#ifdef _AFXDI.LAFX_MODIJLE_STATE* pModuleState=AfxGetModuleState();if (pModuleState-->m_dwVersion<0x421)bReturn=30;else if (pModuleState->m_dwVersion>=0x0601)bReturn=36;#endif //AFXDLLreturn bReturn;}由以上代码可以看出,MFC使用它自己的版本号来判断DAO的版本。

VC连接ACCESS数据库的代码

VC连接ACCESS数据库的代码

VC连接ACCESS数据库的代码2007-02-07 21:17:51#include "stdafx.h"#include <iostream.h>#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace rename ("EOF", "adoEOF")int main(){//使用ADO连接数据库...//---------------------------------------------------------------------------------_ConnectionPtr m_pConnection;CoInitialize(NULL);m_pConnection.CreateInstance(__uuidof(Connection));// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,// 因为它有时会经常出现一些想不到的错误。

try{// 打开本地Access库db1.mdbm_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adMode Unknown);}catch(_com_error e){cout<<"数据库连接失败,确认数据库db1.mdb是否在当前路径下!"<<endl;return FALSE;}//-------------------------------------------------------------------------------------//建立数据集//-------------------------------------------------------------------------------------_RecordsetPtr m_pR ecordset;m_pR ecordset.CreateInstance(__uuidof(Recordset));// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,// 因为它有时会经常出现一些意想不到的错误。

VC++6.0入门【第九章 连接数据库】

VC++6.0入门【第九章 连接数据库】

第九章连接数据库微机在商业上的应用主要在数据处理,要求能够快速方便地访问一个大型数据库中的记录,MFC 提供了两种独立地面向用户的数据库访问系统,一种是ODBC(Open DataBase Connectivity,开放数据库连接),另一种是DAO(Data Access Objects,数据访问对象)。

本章你将学会使用ODBC和DAO连接数据库,并能够简单地操作数据库数据。

9.1 MFC ODBC连接数据库ODBC是微软公司支持开放数据库服务体系的重要组成部分,它定义了一组规范,提供了一组对数据库访问的标准API,这些API是建立在标准化版本SQL(Structed Query Language,结构化查询语言)基础上的。

ODBC位于应用程序和具体的DBMS之间,目的是能够使应用程序端不依赖于任何DBMS,与不同数据库的操作由对应的DBMS的ODBC驱动程序完成。

9.1.1 ODBC的构成ODBC的结构如图9-1所示。

图9-1 使用ODBC的层次图ODBC层由三个部件构成:1.ODBC管理器ODBC管理器的主要任务是管理安装ODBC驱动程序,管理数据源。

应用程序要访问数据库,首先必须在ODBC管理器中创建一个数据源。

ODBC管理器根据数据源提供的数据库存储位置,类型及ODBC驱动程序信息,建立起ODBC与一个特定数据库之间的联系,接下来,程序中只需提供数据源名,ODBC就能连接相关的数据库。

ODBC管理器位于系统控件面板中。

2.驱动程序管理器驱动器管理器位于ODBC32.DLL,是ODBC中最重要的部件,应用程序通过ODBC API执行数据库操作。

其实ODBC API不能直接操作数据库,需要通过驱动管理器调用特定的数据库的驱动程序,驱动程序在执行完相应操作后,再将结果通过驱动程序管理器返回。

驱动器管理器支持一个应用程序同时访问多个DBMS中的数据。

3.ODBC驱动程序ODBC驱动程序以DLL文件形式出现,提供ODBC与数据库之间的接口。

VB连接Access数据库的两种方法

VB连接Access数据库的两种方法

VB连接Access数据库的两种方法首先有一点要注意,数据库的使用与我们以往所使用的文本文件不同.例如我们使用文本文件,来记录各种有用的数据.那么大致有以下几步: 读取文件-- 格式化数据-- 关闭文件-- 使用数据如果数据量较大,需要进行筛选,且存放数据的源文件可能不定时变更,那么我们可以用一个临时文件来存放有用的数据,这样可大大提高程序的效率.要[格式化数据]时,我们首先要进行筛选,然后还得进行分类,这样文件中的字符串才能被转换成有用的信息来供程序使用.这样一来,不用说,处理速度将大大减慢,而且就算你设计的数据格式比较科学,当数据量非常大时,文件的容量也会变的让普通计算机无法承受.相对文本文件来说数据库的使用也大致分为以下几步:打开数据库-- 查找数据-- 使用数据-- 关闭数据库从中可以看出,里面少了一步格式化数据,因为数据库本身在存储数据时,它就是按照一定的格式来进行存储的.其次是,数据库与文本文件返回数据的方法不同.如果把文本文件比作一个Textbox 的话,那么数据库更像是一个ListBox.使用文本文件时我们需要从整个Textbox中取出有用的信息,并进行处理,而Listbox则可以根据需要返回特定的某一项.由于VB本身并不带有可以访问数据库的类,所以我们需要引用一个包含能访问数据库的类来使用数据库.这里我们采用ADODB,相比DAO和能访问数据库的API来说,它比DAO更灵活,更强大;而比起API,它更简单易用,更适合初学者.而Access数据库比起SQL,也相对简单了很多,且能够满足中小型应用程序的需要,所以我们在使用数据库时,选择了Access.就像使用文本文件来存储数据一样,我们需要先设计好数据结构,只不过在设计Access数据库的结构时,我们需要用到其它的程序来进行详细的规划.建议采用的程序是office中的Access或V B自带的VISDATA.当数据库设计好了以后,我们可以开始"数据库编程"了.首先,我们需要引用ADO.具体的方法是,在"工程" -- "引用" 中,找到"Microsoft ActiveX Da ta Object *.* Library",这里的"*.*"是指的时ADO的版本号,一般来说,应用程序或ActiveX 控件都具有向下兼容性,所以我们尽可能选择比较新的版本.以确保程序在能识别旧版本Access 的同时,也能识别较新版本的Access.然后我们需要在程序中创建一个对象.就好比我们在窗体上添加一个FileBox才能看到文件名一样,只有创建了ADO对象,我们才能够访问数据库.常用的对象有两个,Connection和Records et.创建这两个对象的具体方法是:1.在引用后,使用New关键字,如Private Conn As New ADODB.ConnectionPrivate Reco As New ADODB.Recordset2.在没引用时,用CreateObject创建对象:Dim Conn,RecoSet Conn =CreateObject("ADODB.Connection")Set Reco =CreateObject("ADODB.Recordset")创建了对象之后,下一步我们要做的就是打开数据库了.先看下面的代码,可以成功的打开数据库.Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Main.mdb"这句代码打开了D盘中的Main.mdb这个数据库.Connection.Open方法的第一个参数是连接代码,它将传递给系统的数据库引擎.前半部分"Provider=Microsoft.Jet.OLEDB.4.0",它表示了数据库的类型.不同的数据库可能会不同.后半句"Source=d:\main.mdb"它表示了数据库所在的绝对路径.打开数据库之后,还要打开表.假如数据库中有一个表,表名为"Users",字段有两个,一个为用户名,一个为密码.那么看以下代码.1.想返回"Users"中,[用户名]为"去年烟花"的[密码]Recordset.open "Select 密码From Users Where 用户名='去年烟花'",Connection,1, 1之后我们就可以把用户输入的密码进行比较,看是否允许登录.If Recordset.eof and Recordset.bof thenMsgbox "用户不存在!",16ElseIf PassWord =Recordset("密码").value thenmsgbox "登录成功!",64Elsemsgbox "密码错误!",32End IfEnd IfRecordset.Close2.假设Admin已经成功登录系统,我们想把所有的用户名和密码都显示出来Recordset.open "Select * From Users",Connection,1,1这时,表已经被打开,我们就用以下代码把它显示出来.Do whlie Not Recordset.eofPrint "用户名: " & Recordset("用户名").value & "密码: " & Recordset("密码").valueRecordset.MoveNextLoopRecordset.Close由以上代码示例可以看出,打开表时,可以只打开其中的一个字段,也可以打开所有.第一个参数是SQL语句.Select [字段名] From表名[Where 条件]这里的条件可以省略.且字段名也可以用"*"来代替所有字段.需要注意的是,如果你用(1)中的方法打开,那么(2)后面显示的代码就不能再用在(1)中.因为(1)里并没有打开[用户名]字段,所以这一句Recordset("密码")就没有值存在,还有可能出错.后面的条件,可以用"="、">"、"<"等运算符.比如"Where ID >32".(这里假设[ID]为数字型.)这是打开的部分.第二个很重要的部分就是查询记录.数据库它并不是把所有记录全部放到一个变量中备用的.而是以"当前记录"的形式来返回一个值.所以我们想从中找到有用的信息,就必须要对信息进行定位/筛选.定位:移动到下一条Recordset.MoveNext移动到上一条Recordset.MovePrevious移动到最后一条Recordset.MoveLast移动到第一条Recordset.MoveFrist移动到某一条Recordset.Move Number筛选:Recordset.Find "条件"如:[用方法(2)打开表之后]Private Sub Command1_Click()Recordset.Find "用户名=" & "text1.text"If Recordset.Eof <> True ThenMsgbox "该用户的密码是:" & Recordset("密码").value,64ElseMsgbox "未找到该用户的资料!",16End IfEnd SubMoveNext 只有当Eof不为True时,才可用,否则发生错误.而MovePrevious刚是Bof不为T rue时....而只要Eof 和Bof中有一个不为真时,也就是说只要有一条记录时,它就可以使用.Find 方法中的条件和Open时的第一个参数中的条件表述方法是完全一致的.当在已打开的记录集中,找不到该记录时,Eof为True.找到则当前的值就是符合条件的记录.第三个部分就是添加/修改记录.修改记录很简单,先按以上的方法找到相关记录之后,给记录赋值就可以了.比如:[(修改密码)按方法(1)打开表之后]Recordset("密码").value = "123456"Recordset.Updata需要注意的就是,在修改完成后,要调用Updata方法,这样修改才能生效.而添加记录则可以用以下代码来实现:Recordset.addnewRecordset("用户名").value ="Admin"Recordset("密码").value = "Admin"Recordset.Updata这里,先要调用Addnew方法,增加一条新记录,然后对这个新记录中的各字段赋值,最后再调用Updata方法.到这里就差不多了,最后说一下上面提到的几个方法.Recordset.Open SQL语句,数据源,游标类型,打开方法SQL语句不用说了,就是Select那啥的,目的就是按要求从表中返回数据数据源就是一个打开之后的Connection对象.去他妈的游标类型,填1就可以了[偷笑ing]打开方法对应了几个常数,具体哪几个可以从对象浏览器里看.对应数值的意义:1 只读2 独占3 可写4 自已可写,别人可读Connection.open 连接代码,服务器用户名,密码这里的连接代码就不在多说了,服务器用户名,密码只有在连接远程数据库时才用到.VB如何连接access数据库2009年07月25日星期六下午 07:07VB如何连接access数据库?最近在学习VB,正在研究当中!今天告诉大家VB连接数据库的方法,我知道的有两种:一种是在adodc1的属性里设置数据库文件的路径,这种方法的优点是简单易操作,缺点是,当源文件换了地方后,要重新设置数据库的路径,否则连接不上数据库了。

在VC++6.0中利用CSocket类和Access2000数据库开发网络监控系统_百度...

在VC++6.0中利用CSocket类和Access2000数据库开发网络监控系统_百度...
m—S reSc e. ra ( P r ; e rok tCe t n ot v e )
() 1 打开一通信通道, 并告知本地主机 , 它愿 意在某 个公 认 的 地址 端 口上 接 受客 户 的请 求 , 或
者 由开发人 员 自己指 定 端 口地 址 , 时端 口地 址 此 应 大 于 12 B,一般不 超 过 5 0 B; 04 00
本文由风化的海贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
维普资讯
0 卷 月 0 第24 年6 期 2 7 第3
沈 gI tu f r ata E Junl f h na阳航空工业学院学报 l nier g ora o S eyn stt o e nui gne n ni e A o c i
景作为坐标 网格 , 通过 图形移动的方式 , 每次 只需画 出最后 一个 点 , 效的提高 了图形 的显示速 有
度. 关键词 : Sce; C++; 户机/ C oktV 客 服务器模式 ; 数据 库 ; D C O B 中图分类号 :P 9 .4 T 33 0 文献标识码 : A
作者简介 : 谷庆华( 9 0 ) 女 , 18 一 , 辽宁大连人 , 博士研究生
维普资讯
第 3期
谷庆华等 : V 在 C++60中利用 C okt . Sce 类和 A cs 0 0数据库开发 网络监控 系统 ces 0 2
器端 以数字和动态曲线方式 实时显示接 收到 的数 据 , 将数据存 储在 A es0 0数 据库 中.系 并 e s 0 2
统数据库模块采用标 准的 S L结构化查 询语 言 , 用 O B Q 选 D C数据 库访 问技术 , 存储 速度快 , 内存

在VC++6.0中使用ODBC连接数据库

在VC++6.0中使用ODBC连接数据库

在VC++6.0中使用ODBC连接数据库(一)一、建立数据源进入控制面板,点击【管理工具】,进入管理工具后点击【数据源(ODBC)】打开如图1的窗口,从图中的【用户DSN】可以看到我们自己添加的数据源如ClassAffairManageDSN、DataDSN等。

图1 ODBC数据源管理器在【用户DSN】标签页的右上方有三个按钮,分别是【添加(D)…】、【删除(R)】、【配置(C)…】,对应功能分别如下:【添加(D)…】:添加用户自定义新的数据源。

【删除(R)】:选择某个数据源后,点击它可以删除选中的数据源。

【配置(C)…】:选择某个数据源后,点击它可与对选中的数据源重新配置。

点击【添加(D)…】,弹出创建新数据源的窗口,进入创建新数据源的向导,如图2所示图2 创建新数据源列表框中显示的是在自己的电脑上安装的所有ODBC数据源驱动。

以创建SQL Server2000中的Northwind数据库的数据源为例,选择SQL Server数据库的驱动器,点击【完成】弹出“创建的SQL Server 的新数据源”窗口,在“名称”对应的编辑框中输入新创建的数据源的名称“NorthwindDSN”,“描述”可写可不写,“服务器”填写数据源所在的服务器,如果在本机创建则可输入“(local)”。

如图3所示。

图3 创建新数据源第一步:设置数据源名称和服务器点击【下一步】进入下一步的设置中,如图4所示:图4可以根据需要修改这一页的设置,这里选择默认设置,点击【下一步】进入下一步设置如图5所示。

图 5勾选上“更改默认的数据库为:”复选框,选择新数据源链接的数据库为Northwind,设置后如图6所示。

图 6点击【下一步】,进入如下页面:图 7点击【完成】可以看到新创建的数据源的配置信息如下图。

图 8点击【测试数据源(T)…】,弹出如图9窗口时表示新数据源创建成功。

图 9 测试数据源点击【确定】回到原来的窗口,再点【确定】完成新数据源的创建工作,在“ODBC数据源管理器”的“用户DSN”标签页中看到我们新建的数据源,如图10所示。

VC++6.0读写Access数据库中图像字段的方法研究

VC++6.0读写Access数据库中图像字段的方法研究
_
在指定 区域 。这样做 的缺点是 数据库 只存放路 径和 名称 ,照
片 以文件形 式存储 ,不利于管 理 ,照 片文件容 易丢失 ,照 片
D W O RD nF lLe m ie n;
_
HB I TM AP h h t Bi p m P oo t ma ;
_
隐私也容 易泄露 ,安全性和保密性差 。
23 编 写代 码 - v i D pc g:ed t , o C b i : aDa 0 / d Dl R a 读取 数据

De t y h t ; sr P oo 0 o
/ 于 去 掉 上 一 条 记 录 的照 片 / 用

va i tt v ; ra a n r
K e r :VC++ 6. ; c s i a efed y wo ds 0 Ac e s;m g l i
1 引 言
各种信 息管理软件 通 常需 要存取 照片信 息 ,以往 的做 法
是 :先在 P o S o h t h p中按要求的尺寸处理好照片 ,并按名称 存 o 放在指 定 目录下 ,然后在数 据库 中建 立一 个长度 为 2 6个 字 5 符文 本型字 段 ,将学生 照 片的路 径和名 称存 放在 该 字段 中, 需要显示 照片时 ,利 用代码按 指定路径 和名称 提取 照片显示
_
= r n p eod t> e o et R c rs 一 G t l c C 学 号 ” e C l ); i v r t = _ u L ,金 字 段 是 否 为 空 f(a. ! VT_ L ) / 测 v N 卡 var

_
x = ( h ) ( b t t m_ R c r st > eC l c h ca r _ s _) r p e od e一 G t o e t l

VC6.0编译,怎样连接到数据库方法

VC6.0编译,怎样连接到数据库方法

一、实验准备及约定
(1)已安装VC++6.0和Oracle10g标准版 (1)已安装VC++6.0和Oracle10g标准版 已安装VC++6.0 (2)存在d:\student_query.pc文件(pro*c源程序), (2)存在d:\student_query.pc文件(pro*c源程序), 存在d: 文件(pro*c源程序
浏览oracle文件夹,查阅相应文件位置或内容,如:预编 浏览oracle文件夹,查阅相应文件位置或内容, oracle文件夹 译器proc.exe;.h头文件;.lib文件;.pc文件;.c文件; ; h头文件;.lib文件;.pc文件;.c文件; 译器 文件 文件 文件
(3)多个客户机分别对oracle服务器进行数据操作。 (3)多个客户机分别对oracle服务器进行数据操作。 多个客户机分别对oracle服务器进行数据操作
嵌入式SQL SQL的使用步骤 二、嵌入式SQL的使用步骤
使用oracle10g的预编译器proc.exe, oracle10g的预编译器 1 使用oracle10g的预编译器proc.exe, 将pro*c 文件(.pc文件)编译为c文件(.c文件) 文件(.pc文件)编译为c文件(.c文件) (.pc文件 (.c文件 2 使用VC++6.0对.c文件编译、链接、执行 使用VC++6.0 .c文件编译 链接、 VC++6.0对 文件编译、 分两步: 分两步: (1)编译前要配置 后面讲) (1)编译前要配置(后面讲) (2)连接 连接、 后面讲) (2)连接、执行前也要配置(后面讲)
步骤1: 编译前配置包含oracle库文件的相应目录 (1)打开VC编译器(单击VC++6.0图标) (2)选择 工具→选择→目录→ Include files 添加头文件所在的目录(点击条目选项,以下同)。 $ORACLE_HOME \precomp\public

vs2010版本的C++OBDC方式连接数据库(ACCESS和SQL2008)

vs2010版本的C++OBDC方式连接数据库(ACCESS和SQL2008)

VS2010连接数据库〔access和sql 2008〕现在很多人开始用VS2010的C++了,以前大家都是从VC6.0开始使用,对6.0比拟熟悉,网上很多关于连接数据库的方法都是针对VC6.0的,很多人用2010用了一段时间之后不随手就放弃了,继续使用VC6.0.作者作为一名VS2010版本开始学习使用的人在数据库连接的时候也遇到很多问题,在这里和大家分享如下:首先是用ACCESS 方式连接数据库:以前VC6.0怎么连接相信大家都能够百度得到了,他是通过首先打开控制面板->管理工具->数据源〔ODBC〕就到了图一界面:图一然后点击右边的添加按钮:很多书里面都叫添加时候选第二项,也就是图二里面所以深色背景那项:图二Vc6.0的操作就是这样选择。

但在VS2010里面就不对。

我用的是VS2010 然后用ACCESS2007做数据库保存后缀名:accdb如图三图三选择这一项在VS2010里面就不会出错了我在这里添加了一个叫:liyixu的access数据库这就配置好了数据源接下来,讲VS2010里面怎样连接这个数据库:在VC6.0里面是通过添加类的方法来添加数据库里面的具体某一个表。

而在VS2010里面也差不多。

但是当我们按照VC6.0添加正常类的时候发现,他没有基类CRecordset类可以选择:图四比如:如果选择图四中的MFC类图五他里面没有CRecordset基类可供选择,也就无从选择数据源和表。

那么VS2010里面其实是有专门的ODBC使用者设置的。

选择:图六图六中的MFC ODBC使用者选项,不需要输入名称位置,点击添加按钮:图七进入MFC ODBC使用者向导:点击数据源按钮,进入选择数据源对话框,把文件数据源视图切换到系统数据源视图:图八选择之前在数据源中定义的liyixu 用户数据源点击确定出现登陆界面:图九这里我登录名和密码是在添加数据源时在高级选项中设置的,如果你没有设置,当然就没有,直接单击确定按钮就可以连接了图十出现图示界面我的数据库里面只有一个表会员信息,所以直接选择他,然后单击确定回到向导界面,单击完成,完成连接在这里你可以自定义自己的类的名称:图十一我在这里就直接以〔huiyuaninfo〕会员信息为类名了。

VISUAL C++中用MFC ODBC操作ACCESS数据库

VISUAL C++中用MFC ODBC操作ACCESS数据库

本实例是某项目中的一部分,目的是实现MFC ODBC数据库与Access数据表格之间的相互操作。

包括用Visual C++中的MFC ODBC技术实现对Access数据表格的内容的显示、添加、修改和删除的功能。

1、ODBC数据源的创建笔者使用的操作系统为Windows XP,工具是Visual C++6.0。

此例中建立的Access表格取名为“plc”。

在“控制面板”中双击“管理工具”图标,然后在新出现的窗口中双击“数据源(ODBC)”,在弹出的对话框中选中“用户DSN”中的“dBASE Files”,单击“添加”按钮,从弹出的对话框中选中“Microsoft Access Driver(*.mdb)”。

单击“完成”后,将弹出一个新的对话框,在数据源名及说明后的编辑框中填入表格名“plc”。

在命名数据源之后,需要把它连接到一个数据库。

单击“选择”,如图1所示,得到存储在数据目录中plc.mdb的拷贝文件,选中之,单击“确定”关闭此对话框。

然后单击“确定”,完成数据源的创建。

2、使用AppWizard创建一个数据库应用程序笔者开始从AppWizard开始创建一个新的MFC AppWizard(exe)项目。

命名为Jh,然后遵从以下步骤:1)在MFC AppWizard第一步对话框中,选择“单个文档”。

2)在MFC AppWizard第二步对话框中,选择“查看数据库不使用文件支持”,再单击“Data Source”。

3)在RecordSet Type组框中,选择Dynaset。

在Data Source组框中,单击ODBC单选按钮,然后从下拉列表中选择plc,如图2所示,单击ok,在弹出的新的对话框中选中message,即为本项目所要操作的表。

以后几步接收缺省值,单击“完成”即可。

至此,已创建一个应用程序,并且在程序中自行生成一个数据源和数据源中的一个表的相关程序,其程序清单如下:以下是代码片段:class CJhSet:public Crecordset//基于CRecordset的CjhSet新类{public:CJhSet(CDatabase*pDatabase=NULL);DECLARE_DYNAMIC(CJhSet)//Field/Param Data//{{AFX_FIELD(CJhSet,CRecordset)//对应表中一些被绑定字段的变量CString m_baudrate;CString m_type;CString m_unit;CString m_number;CString m_address;CString m_istart;CString m_iend;CString m_ostart;CString m_oend;//}}AFX_FIELD//Overrides//ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CJhSet)public:virtual CString GetDefaultConnect();//返回被连接的数据源名称virtual CString GetDefaultSQL();//返回数据源中所选表名称virtual void DoFieldExchange(CFieldExchange*pFX);//RFX support//}}AFX_VIRTUAL//Implementation#ifdef_DEBUGvirtual void AssertValid()const;virtual void Dump(CDumpContext&dc)const;#endif};3、实现程序的显示记录的功能一旦AppWizard完成编写这些文件,它将启动对话框编辑器,这样就可以设计自己的表单了。

VC中ADO操作Access数据库的实现

VC中ADO操作Access数据库的实现
计算机光盘软件与应用
软件设计开发
C m u e D S fw r n p l c t o s op t r C o t a e a d A p a i n i 21 0 0年第 1 O期
V C中 A O操作 Aces D cs 数据库的实现
陈祖 义 , 陶忠 刚
( 空军第一航 空学院,河南信 阳








黜_


0 一
图 1 基 金 利润 自动 计算 系统 主界面 建 立数 据 库和 数据 表 在 本例 中建 立 了 fn u d数据 库 ,在 数据 库 中建立 了 fn 数 据 ud 表 ,表 中共 有 fn o ( 金代 码 ) fn— al ( 金 名 称 ) u dn 基 、 u dnn 基 e 、 fn at a ( u dp s dy 基金 购 买时 间 )等 l 个 字段 。 2 二 、 引入 A O 定 义文 件 D库 引入AO D 库定 义文 件 的方 法是 在 sd f. 头 文件 中使 用预 处 ta xh 理 指令 ,代 码如 下 :

五 、通 过 Rc r st 象 取得 结果 记 录集 进行 操作 eo d e 对 通 过 R cr st对 象对 结果 记 录集 进行 操作 ,需要 打开 数据 e od e 库 中 的 数 据 表 。 操 作 可 以 放 在 对 话 框 的 初 始 化 函 数 O I iDa o 0中完成 ,代 码 如下 : n n t ilg
a l .d n do 5 l1 o
_ 一
e n t n e( u i o (o n c i n ): Isa c u d fC ne t o)

VC中访问Access数据库的方法(不需要用户建立ODBC数据源)

VC中访问Access数据库的方法(不需要用户建立ODBC数据源)

VC中访问Access数据库的方法(不需要用户建立ODBC数据源)由于项目要发布一个单机版,原来用的数据库是大型数据库。

需要在单机版中用Access比较方便,另外也不能让用户自己创建数据源,最终的方案就是在程序中直接访问(*.mdb)Access数据库文件,下面简要给出在VC6.0中的访问Access数据库文件的方法:注:data.mdb数据库文件中有一个表(tperson),有一个字段(name)CString strSql;CString strName;CString strDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";CString strDsn;CString strFile = "E:\\CurrentWork\\AccessTest\\data.mdb";strDsn.Format("ODBC;DRIVER={%s};UID=sa;PWD=;DBQ=%s ",strDriver,strFile);TRY{CDatabase m_db;//加上这个定义,本来这个是一个类中的成员,暂时就放在这。

m_db.Open(NULL,false,false,strDsn);CString strConnect = m_db.GetConnect();CRecordset rs(&m_db);strSql = "select * from tperson";rs.Open(CRecordset::forwardOnly,strSql,CRecordset::readOn ly);while(!rs.IsEOF()){rs.GetFieldValue("name",strName);//读取数据库内容的代码rs.MoveNext();}m_db.Close();}CATCH(CDBException,e){AfxMessageBox("Database Error:" + e->m_strError);}END_CATCH;其中最关键的地方也就是strDSN这个字符串的内容要正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC6.0连接ACCESS数据库
今天在网上看了很多有关VC连接数据库的例子,但是大部分都是给出了代码,但是没有很详细地讲解了如何连接数据库,这就是我为什么要写这篇文章,特别适合初学者,看这里你无需要懂得是什么意思,尽管跟着步骤一步一步走那么你就可以连接成功!
已发表到/forpig博客中
首先在VC++中建立一个基于对话框的工程(在这里取名为sjtest)
1、在StdAfx.h头文件中导入msado15.dll文件。

(代码如下)
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace \
rename("EOF","adoEOF")rename("BOF","adoBOF")
2、在主窗口类声明两个变量。

(在CsjtestDlg.h中)
代码:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
关于_ConnectionPtr 和_RecordsetPtr 两个智能指针具体作用网上很多,我不详述。

想了解的请读者自己查询,本文旨在为大家建立起数据库连接并且显示出来!
3、在对话框中添加一个ListControl控件,并且将其属性中的Style设置如图
将View设置成Report,Single selection,auto arrange no label wrap勾上!
4、在CLASS WIZARD里面添加一个和LISTCONTROL想关联的变量m_Grid。

5、在CSjtestApp应用程序类中的初始化函数InitInstance()中初始化COM环境
在上面添加:::CoInitialize(NULL);
并在return之前释放:添加代码如下:::CoUninitialize();
5、建立ADO连接数据库函数
在主窗口类(CSjktestDlg)库中添加函数OnInitADOConn()如图:
并在该函数添加如下代码:
try
{
//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\ uid=;pwd=;DBQ=shujuku.mdb;";
//使用Open方法连接数据库
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
catch(_com_error e)
{
AfxMessageBox("连接数据失败,请检查数据库路径是否正确!");
}
在这里我的数据名字为shujuku.mdb,当然CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)}; uid=;pwd=;DBQ=shujuku.mdb;";也可以使用如下字符串连接CString strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shujuku.mdb;Persist Security Info=False";代替
6、按照第五步那样建立关闭记录集和连接函数ExitConnect()并添加代码:
//关闭记录集和连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
7、接着在初始化对话框中调用OnInitADOConn函数,已经获取数据库表中数据并显示在
列表控件中。

代码如下:
m_Grid.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIV ATE
|LVS_EX_GRIDLINES);
m_Grid.InsertColumn(0,"员工编号",LVCFMT_LEFT,80,0);
m_Grid.InsertColumn(1,"员工姓名",LVCFMT_LEFT,80,1);
m_Grid.InsertColumn(2,"所属部门",LVCFMT_LEFT,80,2);
m_Grid.InsertColumn(3,"基本工资",LVCFMT_LEFT,80,3);
//连接数据库
OnInitADOConn();
//设置查询字符串
_bstr_t bstrSQL = "select * from employees order by 员工编号desc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));//该句也可以使用
// m_pRecordset.CreateInstance(“ADODB.Recordset”);代替
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(0,"");
m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));
m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));
m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));
m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
//断开数据库连接
ExitConnect();
8、编译运行,就可以看到结果啦。

相关文档
最新文档