📄 delphi数据库应用开发读书笔记.txt
字号:
一 动态建表
procedure TForm1.Button1Click(Sender:TObject);
begin
with Table1 do
begin
active:=false;
DatabaseName:='DOCTOR';//数据库名称
TableType:=ttParadox;//数据库类型
TableName:='DOCTORINF22';//数据库中的表名
if not Table1.Exists then begin //数据表不存在,而进行如下操作
with FieldDefs do begin
clear;
with AddFieldDef do begin//动态指定字段列表
Name:='姓名';//字段名
DataType:=ftString;
Required:=true;
Size:=10;
end;
with AddFieldDef do begin
Name:='年龄';
DataType:=ftInteger;
end;
//建立字段,利用AddFieldDef方法返回一个新的TFieldDef对象,然后设置这个新对象的各种属性
with AddfieldDef do begin
Name:='职称';
DataType:=ftString;
Required:=true;
size:=10;
end;
with IndexDefs do begin
Clear;
with AddIndexDef do begin
name:='MYINDEX';
Fields:='姓名';
Options:=[ixPrimary];
end;
end;//建立索引
end;
CreateTable;
end;
//在表中添加记录
table1.open;
table1.edit;
table1.fieldbyname('姓名').asstring:='李飞';
table1.fieldbyname('年龄').asinteger:=22;
table1.fieldbyname('职称').asstring:='医师';
table1.append;
table1.edit;
table1.fieldbyname('姓名').asstring:='刘延';
table1.fieldbyname('年龄').asinteger:=22;
table1.fieldbyname('职称').asstring:='医师';
dbgrid1.Datasource:=datasource1;
table1.acrive:=true;
end;
-------------------------------------------------------------------
二 利用Tquery实行带参数的语句查询
procedure TForm1.Button1Click(Sender:Tobject);
begin
if edit1.text='' then
showmessage('必须输入参数,才能进行查找') //此处不能有分号
else
begin
query1.sql.clear;
query1.sql.add('select custno,company,city,state from customer.db');
query1.sql.add('where country=(:countryname)');
query1.params[0].asstring:=edit1.text;
query1.execsql;
query1.active:=true;
edit1.text:='';
end;
end;
--------------------------------------------------------------------
三 利用TStoreProce组件
指定StoredProceName属性指定了服务器端的存储过程的名字,然后可以使用下面的确良语句执行存储过程:
StoredPrdcx.paras[0].asstring:=edit1.text;
StoredProcx.Prepare;
StoredProcx.ExecProc;
label1.caption:=StoredProcx.parambyname('line1').asstring;//得到存储过程中的传出参数的值
--------------------------------------------------------------------
四 访问有口令保护的Paradox和dBASE表
var
mypasswrd:string;
begin
mypasswrd:inputbox('请输入密码:','password:','');
Session.addpassword(mypasswrd);//密码直接添加
try
table1.open;
except
showmessage('不能打开数据库');
application.terminate;
end;
--------------------------------------------------------------------
五delphi的查询函数
1 locate函数
function locate(const keyfields:string; const keyvalues:variant;options:TLocateOptions;)
keyfields是要查询找的字段
keyvalue是要查找的字段的取值
options是查找时的条件,其中loCaseInsensitive表示大小写不敏感,即不区分大小写;loParialKey部分匹配
例:locate('age','21',lopartialkey);
locate('name;age',vararrayof['rose','25'],loParialKey);
2 lookup函数
例:
var
lookupans:variant;
lookupans:=table1.lookup('name','ChenShangDa','age');
查找ChenShangDa的Age
3 setkey与gotokey
例:
table1.setkey;
table1.fieldbyname('name').asstring:='tom';
table1.gotokey;
4 findkey方法
例:
table1.findkey(['jerry']);
5 setkey与gotonearest
例:
table1.setkey;
table1.fieldbyname('name').asstring:='rose';
table1.gotonearest;
--------------------------------------------------------------------
六 简单的建表方法
table1.fielddefs.add('id',ftinteger,0,true);
table1.fielddefs.add('name',ftstring,0,true);
table1.indexdefs.add('myindex','id',[ixprimary,ixunique]);
--------------------------------------------------------------------
七 rave报表的设计方法
1在窗体中放置table控件,并设置好active,databasename,tablename属性
2在rave标签页中取Trvdatasetconnection放置在窗体中,并把dataset属性设置为table
3选择tools/rave designer菜单项,就可以进入报表设置器.
4选择file/new data object下的菜单,就可以进行设置
direct data view-->rvdatasetconnect-->save as即可
5回到delphi的窗体,加入rave标签页下的Trvproject组件属性Projectfile,选择刚才保存的文件,然后在窗体上放一个button按钮,并写入click事件,rvproject1.execute;即可进行打印预览
--------------------------------------------------------------------
八 得到可用的数据库别名的函数
function TAdHocQueryDemo.getdatabasenames:olevariant;
var
i:integer;
dbnames:Tstring;
begin
dbnames:Tstringlist.create;
try
session1.getdatabasenames(dbnames);
result:=vararraycreate([0,dbnames.count -1],varolestr);
for i:=0 to dbnames.count -1 do
result[i]:=dbnames[i];
finally
dbnames.free;
end;
end;
--------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -