断断续续的学习,对于Delphi数据库认识一直不深,就是写写加减乘除小孩子计算题的小程序给儿子当家庭作业。最近安装了RAD 11,然后对数据库开始下手。
D11和D7相比,组件更加丰富,也更加细节化。
D7里面的datasouse很粗糙,D11分出了FDC、SQL、ADO等开头的各种数据连接工具。D7里面的DBE也在D11里。
我先开始的是sqlite数据库,下了个sqlite3,很简单,直接下载下来扔到系统的system32里面,在cmd下直接就能用命令生成一个空数据库,然后在D11界面里data explorer里面用dbexpress数据库工具在sqlite中建一个表的连接,然后按住新建的表格拉到界面上就完成基本配置!
![在这里插入sqlite图片描述](https://img-blog.csdnimg.cn/c9127e72df7d421a8cea1705caaed349.png#pic_center)
实际操作中发现sqlite数据库用的是SQL类的组件,一个连接器,一个表格的组件,再加上个DATESOUSE以及DBgrid就能浏览和操作表格里面的数据,sqlite是不支持存储过程的(网上查的)。
sqlite,sql server,access等数据库最基本的sql语句有:
* create database 这个好像只能创建ACCESS数据库
1、select * from 表名 //选择表
2、insert into 表名(字段名)values (数据) //插入数据
3、create table 表名(字段名) //创建表
实际操作中,bde工具odbc用的很多。数据库也可以用语句去创建,如:
//用FD语句创建一个sqlite数据库
procedure TForm1.FormCreate(Sender: TObject);
const datapath=‘D:\Program Files\sqllite\zhu.db’;
begin
if FileExists(datapath) then DeleteFile(datapath) ;
with FDConnection1 do begin
Params.Add(‘Driverid=sqlite’);
Params.Add(‘database=’+datapath);
Connected:=True;
end;
end;
//创建一个access数据库,注意要在uses里面添加uses System.Win.ComObj;
procedure TForm1.FormCreate(Sender: TObject);
var aceess:OleVariant;
begin
aceess:=CreateOleObject(‘ADOX.Catalog’);
aceess.Create(‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\acess\de.mdb’);
Application.MessageBox(‘创建成功!’,‘’,64); //这个里面的数字没搞懂什么意思,是返回值么?!
end;
其他直接可以在界面上直接配置的数据库就不列出了。
数据组件里面的dbedit、dbgrid等是感知型组件,在里面操作会影响到数据库。或者说,直接用这些组件可以给数据库添加数据,比用sql语句方便很多。
有一点不好,生成的可执行文件个体都比较大。没试过压缩和加壳,以后会学习到的。