1.为了便于数据库的管理和简化sql语句,一般我们都会使用 DataModule–专门用于放置数据访问组件的框架来管理数据库组件。比如在整个程序中某些窗体可能需要查询数据库的信息,到时候只需要把一个查询组件专门用于公共查询数据的组件放在 DataModule构件中,这样就不会在多个窗口都需要添加查询组件,而且可以在DataModule构件中提前写好用于更新和查询的方法,这样就可以省去大量重复代码!
eg:
自定义函数定义:void show(AnsiString,TMyQuery *);
void exec(AnsiString,TMyQuery *);
TDateTime GetServerTime();
void TDataModule1::show(AnsiString sql,TADOQuery ADOQ)
{
ADOQ->Close();
ADOQ->SQL->Clear();
ADOQ->SQL->Add(sql);
ADOQ->Prepared;
try
{
ADOQ->Open();
}
catch(Exception &e) {
/

if(ErrorForm==NULL)
ErrorForm = new TErrorForm(Application);
ErrorForm->Memo1->Text = ADOQ->SQL->Text;
ErrorForm->ShowModal();
*/
}
}
void TDataModule1::exec(AnsiString sql,TADOQuery *ADOQ)
{
ADOQ->Close();
ADOQ->SQL->Clear();
ADOQ->SQL->Add(sql);
try
{
ADOQ->ExecSQL();
// Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集。ExecSQL方法除了可执行Select语句外还可执行其它SQL语句(如Update、Insert、Delete等),此方法不返回执行的结果。用法: Query.ExecSQL
}
catch(Exception &e)
{

}
}
注意:在别的窗体使用DataModule时,别忘了在窗体添加DataModule的头文件!!!

2.数据库连接sql server–使用ADO面板中的ADOConnect
第一步:

第二步:

3.从数据库中查询数据并把取出的数据显示在视图中的实例:
sql = "select * from test ";
DataModule1->show(sql,DataModule1->MyQuery);

从数据库中取出某个特定需要使用的数据的实例:
DataModule1->MyQPub->FieldByName(“keyno”)->AsString
注意:取数据之前肯定需要先要查询数据数据,但是如果你的sql 是 "select * from test ";为了找一条数据把整个表都查出来太耗费资源了!!!正确的用法是单独查询
sql = "select * from test where keyno=601 ";之后再把数据取出来使用!!!

4.像2中如果只需要取下数据的一般都用DataModule的公共查询组件,但如果需要显示出视图中的,一般直接在窗体添加专门的组件用于查询。
eg:DBGird直接绑定一个ADOQuery1和DataSource1,DBGird的Events/DataSource绑定DataSource1
利用ADOQuery的SQL属性提前写入查询语句,然后在ADOQuery的 editor中右击添加添加Columns!!!在其的Field中选中添加的Columns在其对应的属性中修改中文字段, DBGird建立Columns时调出Editing框选择Columns的“Fielsname”可以直接显示中文

数据库数据显示视图除了DBGird,还有dxDBGird,cxDBGird
cxGrid数据集的绑定:
鼠标右击cxGrid1DBTableView1,选中Link to DataSource绑定数据集!!!!
cxGrid某个item的不同状态对应的不同类型的修改:

5.常常使用到的技巧:从数据库中动态生成conbobox中的item:

ckListen->Checked=true;
sql = " Select distinct JKAddress From [Key] ";
DataModule1->show(sql,DataModule1->ADOQFree);

ComboBox1->Items->Clear();
while(! DataModule1->ADOQFree->Eof)
{
ComboBox1->Items->Add(DataModule1->ADOQFree->FieldByName(“JKAddress”)->AsString);
DataModule1->ADOQFree->Next();
}

6.数据库中的数据用图像的视图显示:控件+多图形控件
TListItem ListItem;
int l,t;
l=0;
t=0;
ListViewItem->Items->Clear();
//取手牌信息
sql = “select keyno,keyinno,state from cg_record_key where jkaddress=’”+Ejkaddress->Text+"’ ";
DataModule1->show(sql,DataModule1->MyQFree); //先把需要的数据查询出来再提取
while(DataModule1->MyQFree->Eof==false)
{
ListItem=ListViewItem->Items->Add();
ListItem->Caption=DataModule1->MyQFree->FieldByName(“keyno”)->AsString;
ListItem->SubItems->Add(DataModule1->MyQFree->FieldByName(“keyinno”)->AsString);
ListItem->ImageIndex=DataModule1->MyQFree->FieldByName(“state”)->AsInteger;
ListItem->Left=l
68+10;
ListItem->Top=t*82+10;
l++;
if(l==10)
{
l=0;
t++;
}
DataModule1->MyQFree->Next();
}

BCB数据库构件用法的总结相关推荐

  1. DbUtils操作数据库的用法

    DbUtils操作数据库的用法 转载于:https://www.cnblogs.com/liaoshiyong/archive/2013/06/07/3150975.html

  2. vertica MySQL_MySQL数据库之Vertica数据库的用法

    本文主要向大家介绍了MySQL数据库之Vertica数据库的用法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 基于列存储的数据库,相对于传统的基于行的数据库,它更适合在数据仓 ...

  3. 统计学专业同学需要掌握的数据库基本用法

    统计学专业同学需要掌握的数据库基本用法 摘要:大数据时代,数据库已经成了统计学专业学生不得不掌握的一项基本技术.不论是对于基础理论知识薄弱的本科学生,或者是有一定理论基础的硕士,都要对数据库有所了解. ...

  4. oracle10 数据库审计,Oracle数据库审计用法实例

    本节是从ORACLE METALINK的DOC:167293.1翻译整理而来的.通过举例的方式来说明ORACLE审计的用法.ORACLE的审计可以从语句级.对象 本节是从Oracle METALINK ...

  5. Mysql数据库——高级用法(视图、事务、索引、自连接、用户管理)

    视图 视图是对若干张基本表的引用,一张虚表,只查询语句执行结果的字段类型和约束,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变),方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性. ...

  6. gispython定义查询_Python与开源GIS:SpatiaLite 中的基本SQL数据库查询用法

    Python与开源GIS教程的内容,开发了单独的内容,请打开 https://www.osgeo.cn/pygis/ 查看. 本页面的内容不再更新. 这一节我们来看一下基本的SQL语句用法.使用最通用 ...

  7. oracle数据库imp用法,imp导入数据库的用法

    66.2. exp/imp 创建导入,导出用户 sqlplus /nolog conn system/manager GRANT CREATE USER,DROP USER,ALTER USER ,C ...

  8. 数据库 case 用法

    [转载]:数据库中case when 的用法 CASE WHEN 及 SELECT CASE WHEN的用法Case具有两种格式.简单Case函数和Case搜索函数. 1.简单Case函数 CASE ...

  9. MySql数据库explain用法示例_mysql explain的用法

    MySQL的EXPLAIN命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 一.通过expalin可以得到 1.表的读取顺序 2.表的读 ...

最新文章

  1. asp.net中DataGrid性能测试
  2. iOS 一行命令发布 Pod 框架
  3. [蓝桥] 基础练习 回文数
  4. linux 系统日志路径作用 简介
  5. cookie封装调用
  6. [给 ASP.NET初学者的话]挑书与买书,买适合自己的书
  7. 对程序员非常重要的24个软技能
  8. 如何快速正确的安装 Ruby, Rails 运行环境
  9. NOIP2014 写后感
  10. MT艾宾浩斯背单词(附带主程序)
  11. concatenation java,Java:StringBufferConcatenation
  12. krb5安装包 linux_Linux:krb5
  13. windows 窗口帧率监控小工具
  14. 【模拟电子技术基础】学习笔记 第一章 半导体二极管
  15. 开源网站的漏洞复现(appcms、wordpress)
  16. java的pdf转永中_永中pdf转word下载|
  17. Censored! POJ - 1625 AC自动机+大数DP
  18. FreePascal - Typhon在Windows10 X64下的使用问题!
  19. Vue.js 参考资料汇总
  20. 华为手机安装Goole play教程及安装包

热门文章

  1. 【数据结构】广义表的存储结构及基本运算(C语言)
  2. Android进阶知识树——Android消息队列
  3. Android的apk安装时签名相同冲突解决
  4. 程序员如何学习英语效率高?
  5. 怎么删除w7桌面计算机图标,桌面无法删除的图标,小编教你win7桌面图标删不掉怎么办...
  6. 计算机选择位置不能选桌面,win7电脑桌面的图标无法拖动位置了怎么办?
  7. 遥感专业学习神经网络与深度学习过程中的想法
  8. SIM卡的操作系统cos
  9. linux下,fping命令与ping命令解析
  10. golang之gorm的事务操作 事务不成功原因