请教ADO UpdateBatch 问题

cyberhouse 2001-07-20 05:38:14
我用BCB5.0进行ADO编程时, UpdateBatch不起作用,请教解决方法.
...全文
95 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsg 2001-07-22
  • 打赏
  • 举报
回复
以下是我学习《Delphi 5.x ADO/MTS/DOM+ 高级程序设计篇》(李维著)
中学习UpdataBatch实例的代码(运行通过),分析一下也许有用:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "MyDataModule.h"
#include <typeinfo.h>


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TfrmMain::DisConnectionFunction()
{
dmBatchUpdate->ADOConnection1->Open();
dmBatchUpdate->ADODataSet1->Connection=dmBatchUpdate->ADOConnection1;
dmBatchUpdate->ADODataSet1->Open();
dmBatchUpdate->ADODataSet1->Connection=NULL;
dmBatchUpdate->ADOConnection1->Close();
}
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
dmBatchUpdate->ADODataSet1->UpdateBatch(arCurrent); //¤@±ø¤@±ø¦a§ó·s
// dmBatchUpdate->ADODataSet1->UpdateBatch(arFiltered); //¦h±ø°O¿ý¤@°_§ó·s

}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::Button2Click(TObject *Sender)
{
dmBatchUpdate->ADODataSet1->CancelBatch(arCurrent); //¤@±ø¤@±ø¦a©ñ±ó
// dmBatchUpdate->ADODataSet1->CancelBatch(arFiltered); //¦h±ø°O¿ý¤@°_©ñ±ó
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::faNoneClick(TObject *Sender)
{

// if(typeid(*Sender) ==typeid(TRadioButton)){
// int i=typeid(TRadioButton).Tag ;
// ShowMessage(IntToStr(i));
if((TRadioButton*)Sender==faNone)
{
if(dmBatchUpdate->ADODataSet1->LockType ==ltBatchOptimistic )
{
dmBatchUpdate->ADODataSet1->Filtered=true ;
dmBatchUpdate->ADODataSet1->FilterGroup=fgNone;
}
}
else
{
if(dmBatchUpdate->ADODataSet1->LockType ==ltBatchOptimistic )
{
dmBatchUpdate->ADODataSet1->Filtered=true ;
dmBatchUpdate->ADODataSet1->FilterGroup=fgPendingRecords;
}

}
}

//---------------------------------------------------------------------------
void TfrmMain::NotifyScroll()
{
TUpdateStatus aUS ;
aUS=dmBatchUpdate->ADODataSet1->UpdateStatus();
if(aUS==usUnmodified)
SetUpdateStatusInfo(true,false,false,false);
else
if(aUS==usModified)
SetUpdateStatusInfo(false,true,false,false);
else
if(aUS==usInserted)
SetUpdateStatusInfo(false,false,true,false);
else
SetUpdateStatusInfo(false,false,false,true);

}
//---------------------------------------------------------------------------
void TfrmMain::SetUpdateStatusInfo(Boolean ck1,Boolean ck2,Boolean ck3,Boolean ck4)
{
this->ckusUnmodified->Checked= ck1;
this->ckusmodified->Checked=ck2;
this->ckusInserted->Checked=ck3;
this->ckusDeleted->Checked=ck4;

}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnSaveToFileClick(TObject *Sender)
{
if(SaveDialog1->Execute())
dmBatchUpdate->ADODataSet1->SaveToFile(SaveDialog1->FileName,dfXML );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnLoadFromFileClick(TObject *Sender)
{
if(OpenDialog1->Execute())
dmBatchUpdate->ADODataSet1->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnDisConnectionClick(TObject *Sender)
{
DisConnectionFunction();
}
//---------------------------------------------------------------------------
void TfrmMain::ConnectionFunction()
{
dmBatchUpdate->ADOConnection1->Open();
dmBatchUpdate->ADODataSet1->Connection=dmBatchUpdate->ADOConnection1;
dmBatchUpdate->ADODataSet1->Open();


}

void __fastcall TfrmMain::btnConnectionFunctionClick(TObject *Sender)
{
ConnectionFunction();
}
//---------------------------------------------------------------------------

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧