使用原生ADO进行数据库存取。

原创 2001年07月03日 11:15:00

使用原生ADO进行数据存储,本例子能够显示,向下翻页,但向上翻页有问题。修改后的存储,删除等都存在问题,各位朋友修改一下,我只当起个抛砖引玉的作用。

//.cpp程序

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <DAO_97.h>

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button1Click(TObject *Sender)
{
VConnect= CreateOleObject("ADODB.Connection");
// 打开连接
VConnect.OleFunction("Open","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D://ado//bcdemos.mdb;Persist Security Info=False");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
   VRecordSet=CreateOleObject("ADODB.RecordSet");
   VRecordSet.OlePropertySet("ActiveConnection",VConnect);
   // 设定指令类型与内容
   VRecordSet.OleFunction("Open","Select * from employee", VConnect); // 执行指令
   ShowRecord();
}
//---------------------------------------------------------------------------
void TForm1::ShowRecord()
{
   txtEmpNo->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","EmpNo"));
   txtLastName->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","LastName"));
   txtFirstName->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","FirstName"));
   txtPhone->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","PhoneExt"));
   txtHireDate->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","HireDate"));
   txtSalary->Text=VarToStr(VRecordSet.OlePropertyGet("Fields","Salary"));
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  VRecordSet.OleFunction("Update","LastName",txtLastName->Text);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
if (! VRecordSet.OlePropertyGet("BOF") ){
   VRecordSet.OleFunction("MoveFirst") ;
   ShowRecord();
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)
{
if (! VRecordSet.OlePropertyGet("BOF") ){
   VRecordSet.OleFunction("MovePrevious");
   ShowRecord();
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{
if (! VRecordSet.OlePropertyGet("EOF") ){
   VRecordSet.OleFunction("MoveNext");
   ShowRecord();
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
//if (! VRecordSet.OlePropertyGet("EOF") ){
   VRecordSet.OleFunction("MoveLast");
   ShowRecord();
//   }
}
//---------------------------------------------------------------------------

 

 

//.h程序

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <ADODB.hpp>
#include <Db.hpp>
#include <ComObj.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TPanel *Panel1;
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TButton *Button6;
        TButton *Button7;
        TLabel *Label1;
        TEdit *txtEmpNo;
        TLabel *Label2;
        TEdit *txtLastName;
        TLabel *Label3;
        TEdit *txtFirstName;
        TLabel *Label4;
        TEdit *txtPhone;
        TLabel *Label5;
        TEdit *txtHireDate;
        TLabel *Label6;
        TEdit *txtSalary;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
        void __fastcall Button6Click(TObject *Sender);
        void __fastcall Button7Click(TObject *Sender);
        void __fastcall Button5Click(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private: // User declarations
        Variant VConnect;
        Variant VRecordSet;
        void  ShowRecord();
public:  // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

MFC中ADO方式操作数据库实例

连接ACCESS为例:  C++代码   //头文件   #pragma once           #include "math.h"           #im...
  • u011135902
  • u011135902
  • 2015年04月15日 18:08
  • 553

在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。

在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。 作者:邵盛松 2009-09-05 前言1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇《A...
  • flyfish1986
  • flyfish1986
  • 2009年09月06日 00:29
  • 7785

VC用ADO打开和关闭数据库

初始化: 1.找到"stdafx.h"文件,并添加代码: #import "C:\WINDOWS\system32\msado15.dll" \ no_namespace \ rena...
  • zhongguoren666
  • zhongguoren666
  • 2012年02月02日 13:28
  • 2441

用ADO连接SQL Server数据库

这篇文章不是介绍ADO连接数据库的原理的,而是写一下连接的步骤和简便方法。 一、获取连接字符串。 连接数据库时需要用到  _ConnectionPtr  对象的open方法,参数如下: HRES...
  • zhangkaihang
  • zhangkaihang
  • 2012年04月25日 18:23
  • 17723

delphi使用ADO在sql数据库存取图片的方法

delphi使用ADO在sql数据库存取图片的方法 新手参考,老鸟绕行 我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对delphi也就是略懂皮毛,太深了看不懂。 网上...
  • leavesguth
  • leavesguth
  • 2017年07月27日 11:33
  • 305

ADO.NET中的视图和过滤器

ADO.NET中有一层对象,用来创建任意数据源的抽象模型。其中包括DataSet,DataTable,DataRow,DataView,DataRelation等等。所有这些对象都定义在System....
  • xqyy125
  • xqyy125
  • 2007年01月05日 17:18
  • 335

MFC中利用ADO对数据库进行简单操作的实例

目标:实现对数据库中的数据进行简单地操作,包括增、删、改、查。 第一步,创建一个基于对话框的应用程序,命名为TestAdo 第二步,按照图1的界面布局添加控件...
  • shufac
  • shufac
  • 2014年04月16日 22:37
  • 3917

VC中使用ADO实现BLOB数据的存取

在VC中使用ADO实现BLOB数据的存取     -|walrus 发表于 2006-6-22 9:30:00 ...
  • wjw806
  • wjw806
  • 2008年05月04日 21:16
  • 736

Delphi7 中使用ADO连接数据库基础知识学习

1.一份很好的学习资料。新手必学。 http://download.csdn.net/detail/u010673851/6735141
  • u010673851
  • u010673851
  • 2013年12月18日 16:19
  • 1163

使用ADO对象向数据库添加数据

一、首先创建基于对话框的应用程序:   二、添加“List Contr”控件:1、设置控件属性:    (1)“style”->“View”->“Report”                ->勾选...
  • wuyueyuljh
  • wuyueyuljh
  • 2011年07月20日 12:39
  • 806
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用原生ADO进行数据库存取。
举报原因:
原因补充:

(最多只允许输入30个字)