?? 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 + -