VC6.0中使用ADO操作Access数据库
由于我的程序只是简单的储存网址和标题,Access小而简单,所以就选择Access作为本小软件的数据库,并采用ADO访问数据库。 以下数据库内容摘自孙鑫老师的VC20讲第20课数据库访问的PPT 数据库访问技术 1. ODBC(Open Database Connectivity),开放数据库互连。O
由于我的程序只是简单的储存网址和标题,Access小而简单,所以就选择Access作为本小软件的数据库,并采用ADO访问数据库。
以下数据库内容摘自孙鑫老师的”VC20讲第20课数据库访问的PPT”
数据库访问技术
1. ODBC(Open Database Connectivity),开放数据库互连。ODBC是上个世纪八十年代末九十年代初出现的技术,它为编写关系数据库的客户软件提供了一种统一的接口。 ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。
2. DAO(Data Access Object),数据访问对象。DAO就是一组Microsoft Access/Jet数据库引擎的COM自动化接口。 DAO不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
3. RDO(Remote Data Object),远程数据对象。由于RDO直接调用ODBC API(而不是像DAO那样通过Jet引擎),所以,可以为使用关系数据库的应用程序提供更好的性能。
4. OLE DB,对象链接与嵌入数据库。 OLE DB在两个方面对ODBC进行了扩展。首先, OLE DB提供了一个数据库编程的COM接口;第二, OLE DB提供了一个可用于关系型和非关系型数据源的接口。 OLE DB的两个基本结构是OLE DB提供程序(Provider)和OLE DB用户程序(Consumer)。
5. ADO(ActiveX Data Object),ActiveX数据对象,它建立在OLE DB之上。ADO是一个OLE DB用户程序。使用ADO的应用程序都要间接地使用OLE DB。ADO简化了OLE DB,提供了对自动化的支持,使得像VBScript这样的脚本语言也能够使用ADO访问数据库。
ADO的三个核心对象
1.Connection对象
Connection对象表示了到数据库的连接,它管理应用程序和数据库之间的通信。 Recordset和Command对象都有一个ActiveConnection属性,该属性用来引用Connection对象。
2.Command对象
Command对象被用来处理重复执行的查询,或处理需要检查在存储过程调用中的输出或返回参数的值的查询。
3.Recordset对象
Recordset对象被用来获取数据。 Recordset对象存放查询的结果,这些结果由数据的行(称为记录)和列(称为字段)组成。每一列都存放在Recordset的Fields集合中的一个Field对象中。
用VC连接Access的方法如下:
1.将msado15.dll动态库拷贝到你应用程序所在的文件夹,msado15.dll一般放在C:/Program Files/Common Files/System/ado目录下,你也可以通过Windows的收搜功能进行收搜。
在头文件StdAfx.h中加上#import "msado15.dll" no_namespace rename ("EOF", "adoEOF")
因为记录集的结尾是EOF,而文件的结尾也是EOF,所以这里为了避免冲突,将其重新命名为adoEOF。编译程序,这时在你的Debug目录下多出现两 个文件:msado15.tlh和msado15.tli,这是msado15.dll在编译时自动生成的,有时候可以帮助你了解一些函数、常数的含义。
2.初始化ADO并连接数据库
Ado实际上是一个COM组件,所以我们在使用它之前要进行初始化,结束后要卸载。
加上一个成员变量 _ConnectionPtr m_pConnection; //连接数据库的智能指针
// 初始化—连接数据库
// 初始化OLE/COM库环境
::CoInitialize(NULL);
……
hr=m_pConnection.CreateInstance(__uuidof(Connection)); //实例化连接对象
……
m_pConnection->ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=helper.mdb"; //连接数据库
//如果Access数据库中设置了密码,那么此句应为
//m_pConnection->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=helper.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123456";
还有这里涉及一个字符串过长的问题,该字符串在一行中写不下去,需多行输出。
如CString str=”123456789”; 分两行写为:
Str=”123456”/ //为清楚末尾加 / 在VC中不加也可以,但不要有分号
“789”;
……
m_pConnection->ConnectionTimeout=10; //设置等待连接打开的时间为10秒
hr=m_pConnection->Open("","","",adConnectUnspecified);//打开连接
……(失败、异常处理)
3.数据库读取、修改、删除
……
CString strSQL=”select * from stock”;
_RecordsetPtr pQueryRecordset;
……
hr=pQueryRecordset.CreateInstance(__uuidof(Recordset));
……
pQueryRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText); //打开数据库
……
if((pQueryRecordset->BOF)&&(pQueryRecordset->adoEOF))//记录集没有记录
{ …… }
else
{
_variant_t var; CString strValue; int curItem;
……
while(!pQueryRecordset->adoEOF)
{
var = pQueryRecordset->GetCollect("title");
strValue = (LPCSTR)_bstr_t(var);
ListCtrl.InsertItem(curItem,strValue);
…… //这里的多少取决你的字段…….
pQueryRecordset->MoveNext();
curItem++;
}
}
……
修改
Recordset->PutCollect("visit", (LPCTSTR)visit );
Recordset->Update();
增加
Recordset->AddNew();
Recordset->PutCollect("visit", (LPCTSTR)visit );
Recordset->Update();
strSQL=”delete from stock”;
Recordset->Open(_variant_t(strSQL),_variant_t((IDispatch*)m_pConnection,true),
adOpenStatic,adLockOptimistic,adCmdText);
4.撤消数据库连接,卸载ADO
m_pConnection->Close(); // 释放环境
::CoUninitialize();
另外,由于Access会对你的数据进行排序,所以你读出的数据次序不一定会跟你写进Access时一致。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. Windows 11에서 설정을 엽니다. Win+I 단축키나 다른 방법을 사용할 수 있습니다. 2. 앱 섹션으로 이동하여 앱 및 기능을 클릭합니다. 3. 백그라운드에서 실행되는 것을 방지하려는 애플리케이션을 찾으세요. 점 3개 버튼을 클릭하고 고급 옵션을 선택합니다. 4. [백그라운드 애플리케이션 권한] 섹션을 찾아 원하는 값을 선택하세요. 기본적으로 Windows 11은 전원 최적화 모드를 설정합니다. 이를 통해 Windows는 애플리케이션이 백그라운드에서 작동하는 방식을 관리할 수 있습니다. 예를 들어, 배터리를 절약하기 위해 배터리 절약 모드를 활성화하면 시스템은 모든 앱을 자동으로 닫습니다. 5. 애플리케이션이 백그라운드에서 실행되는 것을 방지하려면 [안함]을 선택합니다. 프로그램이 알림을 보내지 않거나 데이터를 업데이트하지 못하는 경우 등을 확인할 수 있습니다.

DeepSeek은 파일을 PDF로 직접 변환 할 수 없습니다. 파일 유형에 따라 공통 문서 (Word, Excel, PowerPoint) : Microsoft Office, LibreOffice 및 기타 소프트웨어를 사용하여 PDF로 내보내십시오. 이미지 : 이미지 뷰어 또는 이미지 처리 소프트웨어를 사용하여 PDF로 저장하십시오. 웹 페이지 : 브라우저의 "PDF로 인쇄"기능 또는 전용 웹 페이지에서 PDF 도구를 사용하십시오. 드문 형식 : 오른쪽 변환기를 찾아 PDF로 변환하십시오. 올바른 도구를 선택하고 실제 상황에 따라 계획을 개발하는 것이 중요합니다.

Java 리플렉션 메커니즘을 사용하면 프로그램은 소스 코드를 수정하지 않고도 클래스의 동작을 동적으로 수정할 수 있습니다. Class 객체를 통해 클래스를 조작하면 newInstance()를 통해 인스턴스를 생성하고, 프라이빗 필드 값을 수정하고, 프라이빗 메서드를 호출하는 등의 작업을 수행할 수 있습니다. 그러나 리플렉션은 예상치 못한 동작 및 보안 문제를 일으킬 수 있고 성능 오버헤드가 있으므로 주의해서 사용해야 합니다.

Java 함수 개발 시 일반적인 예외 유형 및 해당 복구 방법 Java 함수를 개발하는 동안 다양한 예외가 발생할 수 있으며 이는 함수의 올바른 실행에 영향을 미칩니다. 다음은 일반적인 예외 유형과 해당 복구 방법입니다. 1. NullPointerException 설명: 초기화되지 않은 개체에 액세스할 때 발생합니다. 수정 사항: 개체를 사용하기 전에 개체가 null이 아닌지 확인하세요. 샘플 코드: try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

Oracle은 다음 단계를 통해 dbf 파일을 읽을 수 있습니다. 외부 테이블을 만들고 dbf 파일을 참조하여 데이터를 Oracle 테이블로 가져옵니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

BitgetLaunchpool은 모든 암호화폐 애호가를 위해 설계된 동적 플랫폼입니다. BitgetLaunchpool은 독특한 제품으로 돋보입니다. 여기에서 토큰을 스테이킹하여 에어드랍, 높은 보상, 초기 참가자에게만 제공되는 넉넉한 상금 풀 등 더 많은 보상을 잠금 해제할 수 있습니다. BitgetLaunchpool이란 무엇인가요? BitgetLaunchpool은 사용자 친화적인 이용 약관에 따라 토큰을 스테이킹하고 획득할 수 있는 암호화폐 플랫폼입니다. Launchpool에 BGB 또는 기타 토큰을 투자함으로써 사용자는 무료 에어드랍, 수익을 받고 넉넉한 보너스 풀에 참여할 수 있는 기회를 갖게 됩니다. 담보자산의 수입은 T+1시간 이내에 계산되며, 보상은 다음을 기준으로 합니다.
