BCB数据库问题总结

1、数据过滤Filter使用,查询数据时语句写法使用到格式输出以及字符串加引号问题;

格式输入:sSql=Format(sSql,OPENARRAY(TVarRec,(sItem,sInput)));

字符串加引号:String sInput=AnsiQuotedStr(this->Edsearch->Text, L'\'');

void __fastcall TForm1::cxBtFilterClick(TObject *Sender)
{
	DataModule2->FDDianPu->Filtered=false;
	DataModule2->FDDianPu->Filter="patientname="+AnsiQuotedStr(this->Edsearch->Text, L'\'');
	DataModule2->FDDianPu->Filtered=true;
}

2、SetRange范围的使用 

3、数据定位:Locate LocateEx方法详解

Delphi Locate函数[1] - 查询、定位_mob604756ea4c07的技术博客_51CTO博客

void __fastcall TForm1::butlocateClick(TObject *Sender)
{
	TLocateOptions Opts;
	Opts.Clear();
	Opts<<loPartialKey;
	DataModule2->FDDianPu->Locate("BLH",this->Edsearch->Text,Opts);
}

 原型:

virtual bool __fastcall Locate(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, Data::Db::TLocateOptions AOptions = Data::Db::TLocateOptions() );

在使用Locate时AOptions中:

如果使用loCaseInsensitive就代表不分大小写查询数据;

如果使用loPartialKey就代表要以模糊查询(部分字符串)来查询数据。

LocateEx方法一:

virtual bool __fastcall LocateEx(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, TFDDataSetLocateOptions AOptions = TFDDataSetLocateOptions() , System::PInteger ApRecordIndex = (System::PInteger)(0x0));

LocateEx的第一、二个参数与Locate一样,第三个参数扩充,第四个参数回传查到的数据在数据集中的位置;

LocateEx方法二: 

virtual bool __fastcall LocateEx(const System::UnicodeString AExpression, TFDDataSetLocateOptions AOptions = TFDDataSetLocateOptions() , System::PInteger ApRecordIndex = (System::PInteger)(0x0))/* overload */;

第一个参数为表达式(String),第二个参数与方法一一样,第三个参数为索引(可以不传)

 

 4、Lookup  LookupEx

5、缓存批量更新数据/快储功能

void __fastcall TForm1::butsavaClick(TObject *Sender)
{
	DataModule2->FDDianPu->CachedUpdates=true;    //打开缓存更新
	DataModule2->FDDianPu->ApplyUpdates();       //更新数据
	DataModule2->FDDianPu->CommitUpdates();     //清空缓存
}

 

 

 

SavaPoint方法 

 

 

 

 

6、VarArrayOf()用法,返回一个可变动态数组,第一个参数为Varint类型的数组,第个参数为结束的数组索引(从0开始)。

Variant option[4];
	option[0]="111";
	option[1]="222";
	option[2]="333";
	option[3]="444";
	DataModule2->Tip->Show("",VarListArrayToStr(VarArrayOf(option,3)));

7、DML处理大量数据,TFDQuery组件的创建参数Params,ArraySize为处理的记录条数。

8、排序及索引

可以使用TFDQuery组件的Indexex属性快递创建索引,Name索引名,Fields字段名,Active激活属性。

9、快储更新错误:OnReconcileError

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值