1. 首页
  2. 开始使用
  3. fun_db

fun_db

fun_db 数据库底层操作函数集合

procedure RefreshCombox(var sbiao,sitem:string; Com:TComboBox) ;

函数解析:

  • 函数用途:把查询到数据库列名的结果添加到combobox控件下拉框中。
  • 调用范例:
    var sbiao,sitem:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    //载入表名和需要查询的列名
    fun_db.fundb.refreshcombox(sbiao,sitem,combobox1);
    end;
    

procedure RefreshCombox_trim(var sbiao,sitem:string; Com:TComboBox);

函数解析:

  • 函数用途:把查询到数据库列名的结果添加到combobox控件下拉框中。(去除重复内容)
  • 调用范例:
    var sbiao,sitem:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    //载入表名和需要查询的列名
    fun_db.fundb.refreshcombox_trim(sbiao,sitem,combobox1);
    end;
    

procedure Refreshdb_Combobox_itemlist(var sbiao,sitem1,sitem2,sitem3,sitemcheck:string; var Tcom:TCombobox);

函数解析:

  • 函数用途:把查询到数据库列名的结果添加到combobox控件下拉框中,并制定刷新的条件(> = < )使用 sitem1 sitem2 sitem3 来设定条件。
  • 调用范例:
    var sbiao,sitemcheck:string;
    sitem1,sitem2,sitem3
    begin
    sbiao:='user_db';
    sitem1:='username';
    sitem2:='=';
    sitem3:='admin';
    sitemcheck:='username';
    fun_db.fundb.refreshcombox_itemlist(sbiao,sitem1,sitem2,sitem3,sitemcheck,combobox1);
    end;
    
  • 备注:如果需要去除重复,请使用如下函数,调用方法同上。
    procedure Refreshdb_Combobox_itemlist_trim(var sbiao,sitem1,sitem2,sitem3,sitemcheck:string; var Tcom:TCombobox);
    

procedure Refreshdb(var sbiao:string);

函数解析:

  • 函数用途:刷新数据库内容,在DBgrid中显示,只需要载入表名就可以。
  • 调用范例:
    var sbiao:string;
    begin
    sbiao:='user_db';
    //只需要载入表名
    fun_db.fundb.refreshdb(sbiao);
    end;
    
  • 备注:数据库的链接需要提前设置,在Form.show事件中配置数据库链接代码
    var spatch:string;//定义一个变量用于储存linkfile.txt的路径
    begin
    spatch:=slj+'linkfile.txt';
    slinkstr:=fun_basic.funbasic.getstrfromfile(spatch);
    //showmessage(slinkstr) ;
    fun_db.fundb.AdoQuery1.ConnectionString:=slinkstr; //连接字符串赋值
    fun_db.fundb.AdoQuery2.ConnectionString:=slinkstr;
    Form1.DBGrid1.DataSource := fun_db.fundb.DataSource1;//配置DBgird显示查询结果
    end;
    

procedure Refreshdb_desc(var sbiao,sdesc:string);

函数解析:

  • 函数用途:刷新数据库内容,在DBgrid中显示,倒叙排列显示。
  • 调用范例:
    var sbiao,sdesc:string;
    begin
    sbiao:='user_db';
    sdesc:='id'
    fun_db.fundb.refreshdb_desc(sbiao,sdesc);
    end;
    

procedure Refreshdb_item(var sbiao,sitem,sitemstr:string);

函数解析:

  • 函数用途:根据条件刷新数据库的内容。(where item=itemstr)
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='admin';
    fun_db.fundb.refreshdb_item(sbiao,sitem,sitemstr);
    end;
    

procedure Refreshdb_item_desc(var sbiao,sitem,sitemstr,sdesc:string);

函数解析:

  • 函数用途:根据条件刷新数据库的内容。(where item=itemstr),并且倒叙显示。
  • 调用范例:
    var sbiao,sitem,sitemstr,sdesc:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='admin';
    sdesc:='id';
    fun_db.fundb.refreshdb_item_desc(sbiao,sitem,sitemstr,sdesc);
    end;
    

procedure Refreshdb_item_strlist(var sbiao,sitem,sitemstr:string ;var tlist:TStringlist);

函数解析:

  • 函数用途:根据条件刷新数据库的内容。(where item=itemstr),并根据载入列内容(tlist)查询结果返回结果。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    tlist:TStringlist;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='admin';
    tlist:=TStringlist.Create;
    tlist.Add('列名1');
    tlist.Add('列名2');
    tlist.Add('列名3');
    tlist.Add('列名4');
    fun_db.fundb.Refreshdb_item_strlist(sbiao,sitem,sitemstr,tlist);
    tlist.Free;
    end;
    
  • 备注:如需要倒叙显示请使用。
    procedure Refreshdb_item_strlist_desc(var sbiao,sitem,sitemstr,sdesc:string ;var tlist:TStringlist);
    
  • 调用范例:
    var sbiao,sitem,sitemstr,sdesc:string;
    tlist:TStringlist;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='admin';
    sdesc:='id';
    tlist:=TStringlist.Create;
    tlist.Add('列名1');
    tlist.Add('列名2');
    tlist.Add('列名3');
    tlist.Add('列名4');
    fun_db.fundb.Refreshdb_item_strlist_desc(sbiao,sitem,sitemstr,sdesc,tlist);
    tlist.Free;
    end;
    

procedure DeledbStr(var sbiao,sitem,sitemstr:string);

函数解析:

  • 函数用途:删除数据库中一条数据。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='admin';
    fun_db.fundb.deledbstr(sbiao,sitem,sitemstr);
    end;
    

procedure DeleTable(var sbiao:string);

函数解析:

  • 函数用途:删除整张数据表。
  • 调用范例:
    var sbiao:string;
    begin
    sbiao:='user_db';
    fun_db.fundb.deletable(sbiao);
    end;
    

procedure UpdateStr(var sbiao,ssetitem,ssetitemstr,sitem,sitemstr:string);

函数解析:

  • 函数用途:更新数据库内容,根据条件进行更新。
  • 调用范例:
    var sbiao,sitem,sitemstr,ssetitem,ssetitemstr:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen2';
    ssetitem:='password';
    ssetitemstr:='123';
    fun_db.fundb.updatestr(sbiao,ssetitem,ssetitemstr,sitem,sitemstr);
    end;
    
  • 实例解析:更新如果多条数据库内容都满足username=liusen,则全部更新password内容为123456。 如需要精准的更新请使用ID作为唯一的标示。

procedure Adddbinfo_two_upfile(var sbiao,sitem1,sitem2,sitem_str1,sitem_str2:string);

函数解析:

  • 函数用途:实现上传附件到数据库中,并支持写入唯一的标示(sitemstr)。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    sfilestr,sfilepatch:string;
    slj:string;
    begin
    fun_basic.funbasic.getpatch(slj);//函数已经被GetPath_p(var slj:string)替换更新。
    sbiao:='upfiles';
    sitem:='sitem';
    sitemstr:='test_new';
    sfilestr:='sitem_up';
    sfilepatch:=slj+'abc.jpg' ;
    fun_db.fundb.upload_file_db_new(sbiao,sitem,sitemstr,sfilestr,sfilepatch);
    end;
    

procedure CreateLocalmdb(var spath:string);

函数解析:

  • 函数用途:创建本地的数据库(mdb)格式。输入数据库路径即可。
  • 调用范例:
    var spach:string;
    begin
    spach:='C:\abc.mdb';
    fun_db.fundb.CreateLocalmdb(spach);
    end;
    

procedure Download_File_db_new(var sbiao,sitem,sitemstr,sfilestr,sfilepatch:string);

函数解析:

  • 函数用途:根据指定的条件sitem=sitemstr从数据库下载附件到指定路径。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    sfilestr,sfilepatch:string;
    slj:string;
    begin
    fun_basic.funbasic.getpatch(slj); //getpatch 已经被 getpatch_p 代替 
    //或者使用 function getpatch 来获取返回结果。 sbiao:='upfiles'; sitem:='id'; sitemstr:='3'; sfilestr:='sitem_up'; sfilepatch:=slj+'abc.jpg'; fun_db.fundb.download_file_db_new(sbiao,sitem,sitemstr,sfilestr,sfilepatch); end;
  • 实例解析:
    1、 建议使用ID=数字来作为查询附件的唯一标示;
    2、 存储路径构造的时候需要加上文件的后缀名;

procedure Adddbinfo_Strlist(var sbiao:string ;var arrdb,arrstr:Tstringlist);

函数解析:

  • 函数用途:批量添加数据库内容,十分常用。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2:TStringlist;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    //必须先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    tlist1.Add('password');
    tlist2.Add('123456');
    tlist1.Add('slevel');
    tlist2.Add('5');
    fun_db.fundb.adddbinfo_strlist(sbiao,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    //最后要释放实例
    end;
    
  • 实例解析:
    1、 tlist必须创建实例;
    2、 tlist最后要释放内存;
    3、 tlist1和tlist2的内容和长度必须对应;

procedure Deldbinfo_Strlist(var sbiao:string; var arrdb,arrstr:Tstringlist);

函数解析:

  • 函数用途:批量删除多条数据内容,删除条件自定义。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2:TStringlist;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    //必须先创建实例
    tlist1.Add('id');
    tlist2.Add('2');
    tlist1.Add('id');
    tlist2.Add('3');
    tlist1.Add('id');
    tlist2.Add('3');
    fun_db.fundb.deldbinfo_strlist(sbiao,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    //最后要释放实例
    end;
    
  • 实例解析:删除id=2、id=2、id=3、id=4的数据库内容。;

procedure Getdbstr_Strlist(var sbiao:string;var arrdb,arrstr,arritem,arrcheck:Tstringlist);

函数解析:

  • 函数用途:批量载入查询的条件,批量查询结果并写入到tlist中。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2,tlist3,tlist4:TStringlist;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    tlist4:=TStringlist.Create;
    //必须先创建实例
    tlist1.Add('id');
    tlist2.Add('4');
    tlist3.Add('slevel');
    tlist1.Add('id');
    tlist2.Add('5');
    tlist3.Add('slevel');
    tlist1.Add('id');
    tlist2.Add('6');
    tlist3.Add('slevel');
    fun_db.fundb.getdbstr_strlist(sbiao,tlist1,tlist2,tlist3,tlist4);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    tlist4.Free;
    //最后要释放实例
    end;
    
  • 实例解析:
    1、 需要创建4个tlist,前2个tlist的作用是输入查询条件sitem=sitemstr作用;第3个tlist是用于记录查询的数据库列名;第4个tlist是用于储存查询的结果;
    2、 只需要给前3个tlist赋值;
    3、 查询的结果存储在tlist中。可以使用tlist4.Strings[i]; 来取值。

procedure Getdbstr_Strlist(var sbiao:string;var arrdb,arrstr,arritem,arrcheck:Tstringlist);

函数解析:

  • 函数用途:批量载入查询的条件,批量查询结果并写入到tlist中。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2,tlist3,tlist4:TStringlist;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    tlist4:=TStringlist.Create;
    //必须先创建实例
    tlist1.Add('id');
    tlist2.Add('4');
    tlist3.Add('slevel');
    tlist1.Add('id');
    tlist2.Add('5');
    tlist3.Add('slevel');
    tlist1.Add('id');
    tlist2.Add('6');
    tlist3.Add('slevel');
    fun_db.fundb.getdbstr_strlist(sbiao,tlist1,tlist2,tlist3,tlist4);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    tlist4.Free;
    //最后要释放实例
    end;
    
  • 实例解析:
    1、 需要创建4个tlist,前2个tlist的作用是输入查询条件sitem=sitemstr作用;第3个tlist是用于记录查询的数据库列名;第4个tlist是用于储存查询的结果;
    2、 只需要给前3个tlist赋值;
    3、 查询的结果存储在tlist中。可以使用tlist4.Strings[i]; 来取值。
  • 备注:如果需要过滤重复内容,请使用下面的函数
    procedure Getdbstr_Strlist_trim(var sbiao:string;var arrdb,arrstr,arritem,arrcheck:Tstringlist);

procedure Getdbstr_Item_Tolist(var sbiao,sitem,sitemstr,sitemcheck:string;var tlist:TStringlist);

函数解析:

  • 函数用途:根据条件进行查询,并把结果写到tlist中
  • 调用范例:
    var sbiao,sitem,sitemstr,sitemcheck:string;
    tlist:TStringlist;
    begin
    sbiao:='user';
    sitem:='id';
    sitemstr:='5';
    sitemcheck:='password';
    tlist:=TStringlist.Create;
    fun_db.fundb.Getdbstr_Item_Tolist(sbiao,sitem,sitemstr,sitemcheck,tlist);
    tlist.Free;
    end;
    
  • 实例解析:需要设置查询的数据库列 (sitemcheck)。
  • 备注:如果需要过滤重复内容,请使用下面的函数
    procedure Getdbstr_Item_Tolist_trim(var sbiao,sitem,sitemstr,sitemcheck:string;var tlist:TStringlist);

procedure Updatestr_Strlist(var sbiao:string;var arrsetitem,arrsetitemstr,arritem,arritemstr:Tstringlist);

函数解析:

  • 函数用途:批量更新多条数据库信息,自定义更新条件。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2,tlist3,tlist4:TStringlist;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    tlist4:=TStringlist.Create;
    //必须先创建实例
    tlist1.Add('id');
    tlist2.Add('4');
    tlist3.Add('slevel');
    tlist4.Add('10');
    tlist1.Add('id');
    tlist2.Add('5');
    tlist3.Add('slevel');
    tlist4.Add('10');
    tlist1.Add('id');
    tlist2.Add('6');
    tlist3.Add('slevel');
    tlist4.Add('10');
    fun_db.fundb.updatestr_strlist(sbiao,tlist3,tlist4,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    tlist4.Free;
    //最后要释放实例
    end;
    
  • 注意参数载入的顺序:tlist3和tlist4是记录数据更新的内容,tlist1和tlist2是记录查询的条件。

procedure Querydb_Strlist(var sbiao:string;var arrdb,arrstr:TStringlist);

函数解析:

  • 函数用途:批量/多条件查询数据库内容,并返回到DBGrid中。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    //首先创建实例
    if trim(edit1.Text) <> ''then
    begin
      tlist1.Add('username');
      tlist2.Add(trim(edit1.Text));
    end;
    if combobox1.ItemIndex <> -1 then
    begin
      tlist1.Add('slevel');
      s_tmp:=combobox1.Items.Strings[combobox1.ItemIndex];
      tlist2.Add(s_tmp);
    end;
    fun_db.fundb.querydb_strlist(sbiao,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    //释放实例
    end;
    
  • 注意参数载入的顺序:tlist3和tlist4是记录数据更新的内容,tlist1和tlist2是记录查询的条件。
  • 初始化代码:
    begin
    combobox1.Clear;
    combobox1.Items.Add('1');
    combobox1.Items.Add('5');
    combobox1.Items.Add('10');
    combobox1.ItemIndex:=-1;
    combobox1.Text:='下拉选择';
    edit1.Clear;
    edit1.SetFocus;
    end;
    
  • 实例解析:1、 添加条件的时候需要判断条件十分为空,用于减少程序的负担。
    if trim(edit1.Text) <> ''then
    begin
      tlist1.Add('username');
      tlist2.Add(trim(edit1.Text));
    end;
    
    if combobox1.ItemIndex <> -1 then
    begin
      tlist1.Add('slevel');
      s_tmp:=combobox1.Items.Strings[combobox1.ItemIndex];
      tlist2.Add(s_tmp);
    end;
    
    2、 初始化的时候一定要先清空combobox的内容,并且设置combobox.itemindex的值,因为判断条件的时候是判断combobox.itemindex是否等于-1;
    3、 如果需要倒叙显示查询结果,请使用下面的过程 procedure querydb_strlist_desc(var sbiao,sdesc:string;var arrdb,arrstr:TStringlist);
  • 备注:如果需要使用倒叙显示,请使用下面的函数:
    procedure Querydb_Strlist_desc(var sbiao,sdesc:string;var arrdb,arrstr:TStringlist);

procedure Querydb_Strlist_Opera(var sbiao:string;var tlist1,tlist2,tlist3:TStringlist);

函数解析:

  • 函数用途:用于批量查询/多条件查询,并返回结果到DBgrid中,其中区别于5.3.15 querydb_strlist是条件的逻辑关系可以自定义,查询结果是and关系。
  • 调用范例:
    var sbiao,sdesc:string;
    tlist1,tlist2,tlist3:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    sdesc:='id';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    tlist1.Add('username');
    tlist2.Add('liusen');
    tlist3.Add('=');
    tlist1.Add('password');
    tlist2.Add('123456');
    tlist3.Add('<>');
    fun_db.fundb.querydb_strlist_opera_or_desc(sbiao,sdesc,tlist1,tlist2,tlist3);
    //查询表 usernmae=liusen 并且 password=123456
    //查询结果根据ID倒叙排列
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    //释放内存
    end;
    
  • 实例解析:和前面几个过程相比,增加的内容就是把查询结果写到tlist中,方便我们对查询结果进行计算和整理。
    while not eof do
    begin
      s_tmp:=fieldByname(sitemcheck).asstring;
      tlist4.Add(s_tmp);
      next;
    end;
    

procedure Querydb_Strlist_Opera_or_desc(var sbiao,sdesc:string;var tlist1,tlist2,tlist3:TStringlist);

函数解析:

  • 函数用途:用于批量查询/多条件查询,并返回结果到DBgrid中,其中区别于5.3.15 querydb_strlist是条件的逻辑关系可以自定义,查询结果是or关系。
  • 调用范例:
    var sbiao,sdesc:string;
    tlist1,tlist2,tlist3:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    sdesc:='id';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    tlist3.Add('=');
    //
    tlist1.Add('password');
    tlist2.Add('123456');
    tlist3.Add('<>');
    fun_db.fundb.querydb_strlist_opera_or_desc(sbiao,sdesc,tlist1,tlist2,tlist3);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    //释放实例
    end;
    
  • 实例解析:这个过程用于查询多条件 OR 的逻辑关系的情况下。
  • 如果正序显示,请使用下面的函数,倒叙看起来是常用的功能。
    procedure Querydb_Strlist_Opera_or(var sbiao:string; var tlist1,tlist2,tlist3:TStringlist);

procedure Getdb_Strlist_Querydb_Strlist_Opera(var sbiao,sitemcheck:string;var tlist1,tlist2,tlist3,tlist4:TStringlist);

函数解析:

  • 函数用途:用于多条件查询数据库内容,自定义查询条件(>、<、like、<>),并且把结果写到tlist中。
  • 调用范例:
    var sbiao,scheck:string;
    tlist1,tlist2,tlist3,tlist4:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    tlist4:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    tlist3.Add('=');
    //
    tlist1.Add('password');
    tlist2.Add('123456');
    tlist3.Add('=');
    scheck:='slevel';
    fun_db.fundb.getdb_strlist_querydb_strlist_opera(sbiao,scheck,tlist1,tlist2,tlist3,tlist4);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    tlist4.Free;
    //释放实例
    end;
    
  • 备注:如果需要去掉重复请使用下面的函数:
    procedure Getdb_Strlist_Querydb_Strlist_Opera_trim(var sbiao,sitemcheck:string;var tlist1,tlist2,tlist3,tlist4:TStringlist);

procedure Querydb_Strlist_Opera_Item_desc(var sbiao,sdesc:string;var tlist1,tlist2,tlist3,tlist4:TStringlist);

函数解析:

  • 函数用途:多条件/批量查询,查询结果在dbgrid中显示,并且显示指定的列名。
  • 调用范例:
    var sbiao,sdesc:string;
    tlist1,tlist2,tlist3:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    sdesc:='id';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    //
    tlist1.Add('password');
    tlist2.Add('123');
    tlist3.Add('username');
    tlist3.Add('password');
    fun_db.fundb.querydb_strlist_item_desc(sbiao,sdesc,tlist1,tlist2,tlist3);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    //释放实例
    end;
    
  • 实例解析:用这个过程可以显示指定的列名,比较适合需要给指定用户隐藏指定列名内容的情况。 其中tlist1和tlist2的内容是对应的,tlist3内容的顺序并没有特别的规定。

procedure Querydb_Strlist_or(var sbiao:string;var arrdb,arrstr:TStringlist);

函数解析:

  • 函数用途:多条件批量查询,其中并列的逻辑关系是 or。满足其中任意一条件就可以。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    //
    tlist1.Add('password');
    tlist2.Add('123');
    fun_db.fundb.querydb_strlist_or(sbiao,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    //释放实例
    end;
    
  • 实例解析:这个过程区别 (procedure querydb_strlist(var sbiao:string;var arrdb,arrstr:TStringlist);)最大的区别在于:这个多条件查询只要满足其中一个条件即可,不需要和 querydb_strlist 一样满足所有的条件; 如果需要倒叙排列请使用下面的过程。
    procedure Querydb_Strlist_or_desc(var sbiao,sdesc:string;var arrdb,arrstr:TStringlist);

procedure Querydb_Strlist_item_desc(var sbiao,sdesc:string;var arrdb,arrstr,sitem:TStringlist);

函数解析:

  • 函数用途:多条件/批量查询,查询结果在dbgrid中显示,并且显示指定的列名,并倒叙排列。
  • 调用范例:
    var sbiao,sdesc:string;
    tlist1,tlist2,tlist3:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    sdesc:='id';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    //
    tlist1.Add('password');
    tlist2.Add('123');
    tlist3.Add('username');
    tlist3.Add('password');
    fun_db.fundb.querydb_strlist_item_desc(sbiao,sdesc,tlist1,tlist2,tlist3);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    //释放实例
    end;
    
  • 实例解析:用这个过程可以显示指定的列名,比较适合需要给指定用户隐藏指定列名内容的情况。 其中tlist1和tlist2的内容是对应的,tlist3内容的顺序并没有特别的规定。
    如果使用正序排列,请使用下面的函数:
    procedure Querydb_Strlist_item(var sbiao:string;var arrdb,arrstr,sitem:TStringlist);

procedure Querydb_Strlist_item_or_desc(var sbiao,sdesc:string;var arrdb,arrstr,sitem:TStringlist);

函数解析:

  • 函数用途:多条件/批量查询,查询结果在dbgrid中显示,并且显示指定的列名,并倒叙排列。
  • 调用范例:
    var sbiao,sdesc:string;
    tlist1,tlist2,tlist3:TStringlist;
    s_tmp:string;
    begin
    sbiao:='user_db';
    sdesc:='id';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist3:=TStringlist.Create;
    //首先创建实例
    tlist1.Add('username');
    tlist2.Add('liusen');
    //
    tlist1.Add('password');
    tlist2.Add('123');
    tlist3.Add('username');
    tlist3.Add('password');
    fun_db.fundb.querydb_strlist_item_desc(sbiao,sdesc,tlist1,tlist2,tlist3);
    tlist1.Free;
    tlist2.Free;
    tlist3.Free;
    //释放实例
    end;
    
  • 实例解析:用这个过程可以显示指定的列名,比较适合需要给指定用户隐藏指定列名内容的情况。 其中tlist1和tlist2的内容是对应的,tlist3内容的顺序并没有特别的规定。
    如果使用正序排列,请使用下面的函数:
    procedure Querydb_Strlist_item(var sbiao:string;var arrdb,arrstr,sitem:TStringlist);

procedure Addinfo_One(var sbiao,sitem,sitemstr:string);

函数解析:

  • 函数用途:用于添加一项数据内容到数据库。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen_add';
    fun_db.fundb.addinfo_one(sbiao,sitem,sitemstr);
    end;
    

procedure Refreshdb_Strlist(var sbiao:string;var tlist:TStringlist);

函数解析:

  • 函数用途:用于刷新数据库时候显示指定的列名内容。
  • 调用范例:
    var sbiao:string;
    tlist:TStringlist;
    begin
    sbiao:='user_db';
    tlist:=TStringlist.Create;
    tlist.Add('username');
    tlist.Add('password');
    fun_db.fundb.refreshdb_strlist(sbiao,tlist);
    tlist.Free;
    end;
    
  • 实例解析:这个过程就是修改了“select * 表名 条件“ 修改成 “select 列名,列名,列名”表名 条件 “ 来实现的显示指定的列名。
  • 备注:如果需要使用倒排列,请使用下面的函数:
    procedure Refreshdb_Strlist_desc(var sbiao,sdesc:string;var tlist:TStringlist);

procedure Getdbinfo_Strlist(var sbiao,sitem:string; var tlist:TStringlist);

函数解析:

  • 函数用途:把数据库中指定列名的所有值全部查询出来并添加到tlist中。
  • 调用范例:
    var sbiao,sitem:string;
    tlist:TStringlist;
    begin
    sbiao:='user_db';
    sitem:='slevel';
    tlist:=TStringlist.Create;
    fun_db.fundb.getdbinfo_strlist(sbiao,sitem,tlist);
    tlist.Free;
    end;
    
  • 备注:这个过程是查询列名的所有的值,如果需要查询限定个数的请使用下面的过程:
     procedure Getdbinfo_Strlist_limit(var sbiao,sitem,slimit:string; var tlist:TStringlist);

procedure Getdbinfo_Item_Strlist_limit(var sbiao,sitem,sitemstr,scheck,slimit:string; var tlist:TStringlist);

函数解析:

  • 函数用途:查询指定条件,查询指定列名,并显示指定的数目,把结果添加到tlist中。
  • 调用范例:
    var sbiao,sitem,sitemstr,slimit,scheck:string;
    tlist:TStringlist;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen';
    scheck:='srole';
    slimit:='10';
    tlist:=TStringlist.Create;
    fun_db.fundb.getdbinfo_item_strlist_limit(sbiao,sitem,sitemstr,scheck,slimit,tlist);
    tlist.Free;
    end;
    
  • 备注:如果使用倒叙显示,请使用:
     procedure Getdbinfo_Item_Strlist_desc_limit(var sbiao,sdesc,sitem,sitemstr,scheck,slimit:string; var tlist:TStringlist);

procedure Setdbgrid_Caption(var tdb:TDBGrid; var tlist:TStringlist);

函数解析:

  • 函数用途:修改DBgrid显示的标题文字,数据来源是tlist。
  • 调用范例:
    var tlist:TStringlist;
    begin
    tlist:=TStringlist.Create;
    tlist.Add('ID');
    tlist.Add('登录账户');
    tlist.Add('登录密码');
    tlist.Add('登录权限');
    tlist.Add('所属项目');
    fun_db.fundb.setdbgrid_caption(dbgrid1,tlist);
    tlist.Free;
    end;
    
  • 实例解析:有了这个过程之后,我们的数据库刷新和查询的结果更容易被用户接受, 这个过程只是设置DBgird的标题,调用的时候请在刷新/查询过程之后加上这个过程。
  • 备注:请注意tlist的总长度不要超过数据库列名的总长度。

procedure Drop_Table(var sname:string);

函数解析:

  • 函数用途:删除数据库表。
  • 调用范例:
    var sbiao:string;
    begin
    sbiao:='user_db';
    fun_db.fundb.drop_table(sbiao);
    end;
    
  • 实例解析:有了这个过程之后,我们的数据库刷新和查询的结果更容易被用户接受, 这个过程只是设置DBgird的标题,调用的时候请在刷新/查询过程之后加上这个过程。
  • 备注:请注意tlist的总长度不要超过数据库列名的总长度。

procedure Addstrtolist_Strlist(var sbiao,sitem:string; var tlist:TStringlist);

函数解析:

  • 函数用途:把查询的结果写到tlist中。
  • 调用范例:
    var sbiao,sitem,sitemstr,sitemcheck:string;
    tlist1:TStringlist;
    begin
    sbiao:='user';
    sitemstr:='username';
    tlist1:=TStringlist.Create;
    fun_db.fundb.Addstrtolist_Strlist(sbiao,sitem,tlist1)  ;
    tlist1.Free;
    end;
    
  • 备注:如果需要去掉重复的请使用:
    procedure Addstrtolist_Strlist_trim(var sbiao,sitem:string; var tlist:TStringlist);

function Querydb_Bool(var sbiao,sitem,sitemstr:string):boolean;

函数解析:

  • 函数用途:用于查询指定的数据是否存在,例如:查询用户名是否存在,返回的是布尔量。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    b:boolean;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='123456';
    b:=fun_db.fundb.querydb_bool(sbiao,sitem,sitemstr);
    end;
    
  • 备注:如如果需要多条件判断是否存在的情况可以调用下面的过程;看着代码很长,其实不实用。
    function  Querydb_Bool_Strlist(var sbiao:string;var tlist1,tlist2,tlist3:TStringlist):boolean;

function Querydb_Bool_Tostr(var sbiao,sitem,sitemstr:string):string;

函数解析:

  • 函数用途:用于查询指定的数据是否存在,例如:查询用户名是否存在,返回的ID(数据库项目=id)值。
  • 调用范例:
    var sbiao,sitem,sitemstr,sid:string;
    tlist1:TStringlist;
    begin
    sbiao:='user';
    sitem:='username';
    sitemstr:='admin';
    sid:=fun_db.fundb.Querydb_Bool_Tostr(sbiao,sitem,sitemstr) ;
    end;
    

function GetdbStr(var sbiao,sitem,sitemstr,sitem_check:string):string;

函数解析:

  • 函数用途:得到数据库中指定数据的值,返回string类型。
  • 调用范例:
    var sbiao,sitem,sitemstr,scheck:string;
    sresult:string;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen';
    scheck:='slevel';
    sresult:=fun_db.fundb.getdbstr(sbiao,sitem,sitemstr,scheck);
    end;
    
  • 实例解析:十分常用的函数。
  • 备注:如果返回的内容是整数型(integer)请使用下面的函数:
    function  Getdbstr_Integer(var sbiao,sitem,sitemstr:string;var iitemstr:integer):string;

function Checklogin_Two_bool(var sbiao,sitem_name,sitem_pass,sname,spass:string):boolean;

函数解析:

  • 函数用途:用于验证登录信息是否正确。
  • 调用范例:
    var sbiao,sitem_db,sitemstr_db,sitem,sitemstr:string;
    b:boolean;
    begin
    sbiao:='user_db';
    sitem_db:='username';
    sitemstr_db:='password';
    sitem:=trim(edit1.Text);
    sitemstr:=trim(edit2.Text);
    b:=fun_db.fundb.checklogin_two_boolean(sbiao,sitem_db,sitemstr_db,sitem,sitemstr);
    if b=true then  showmessage('t') else showmessage('f');
    end;
    
  • 实例解析:需要载入存储账号和密码的数据库列名,然后载入用户输入的账号和密码,根据返回的布尔量来判断登录信息是否正确。

function Checkitem_Empty(var sbiao,sitem,sitemstr:string):boolean;

函数解析:

  • 函数用途:判断指定条件是否成立(sitem=sitemstr),返回布尔量。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    b:boolean;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen';
    b:=fun_db.fundb.checkitem_empty(sbiao,sitem,sitemstr);
    if b=true  then showmessage('t') else showmessage('f');
    end;
    

function SqlCount(var sbiao:string):integer;

函数解析:

  • 函数用途:返回数据表的总条目。
  • 调用范例:
    var sbiao:string;
    i:integer;
    begin
    sbiao:='user_db';
    i:=fun_db.fundb.sqlcount(sbiao);
    end;
    

function TestdbCon(var sbiao:string):boolean;

函数解析:

  • 函数用途:测试数据库链接是否正确,返回布尔值。
  • 调用范例:
    var sbiao:string;
    b:boolean;
    begin
    sbiao:='user';
    b:=fun_db.fundb.TestdbCon(sbiao);
    end;
    

function Gettotal_Item(var sbiao,sitem,sitemstr:string):integer;

函数解析:

  • 函数用途:查询指定条件并返回条目数。
  • 调用范例:
    var sbiao,sitem,sitemstr:string;
    i:integer;
    begin
    sbiao:='user_db';
    sitem:='username';
    sitemstr:='liusen';
    i:=fun_db.fundb.gettotal_item(sbiao,sitem,sitemstr);
    end;
    

function Gettotal_Strlist_or(var sbiao:string;var tlist1,tlist2:TStringlist):integer;

函数解析:

  • 函数用途:多条件查询(or关系),返回数据库条目。
  • 调用范例:
    var sbiao:string;
    tlist1,tlist2:TStringlist;
    i:integer;
    begin
    sbiao:='user_db';
    tlist1:=TStringlist.Create;
    tlist2:=TStringlist.Create;
    tlist1.Add('username');
    tlist2.Add('liusen');
    tlist1.Add('password');
    tlist2.Add('1234');
    i:=fun_db.fundb.gettotal_strlist_or(sbiao,tlist1,tlist2);
    tlist1.Free;
    tlist2.Free;
    end;
    
  • 实例解析:如果需要逻辑关系是and的多条件返回条目请使用下面的函数 。
    function  Gettotal_Strlist_and(var sbiao:string;var tlist1,tlist2:TStringlist):integer;

function Querydb_Sum_total(var sbiao,sitem:string):integer;

函数解析:

  • 函数用途:用于统计指定列名的总数,使用到mysql中sum函数。
  • 调用范例:
    var sbiao,sitem:string;
    i:integer;
    begin
    sbiao:='user_db';
    sitem:='id';
    i:=fun_db.fundb.querydb_sum_total(sbiao,sitem);
    showmessage(inttostr(i));
    end;
    
  • 实例解析:常用于统计总和/总分/总数等情况。

更多数据库操作函数

  • 备注:其实还有很多复杂的函数,鉴于使用的频率比较低,可以自行查阅。
    function  Querydb_Strlist_Opera_desc_count(var sbiao,sitem:string;var tlist1,tlist2,tlist3:TStringlist):integer;
    function  Querydb_Sum_total(var sbiao,sitem:string):integer;
    function  Querydb_Strlist_Opera_Getinfo_id(var sbiao,sitemcheck:string; var tlist1,tlist2,tlist3:TStringlist):integer;
    function  Querydb_Strlist_Opera_Getinfo_str(var sbiao,sitemcheck:string; var tlist1,tlist2,tlist3:TStringlist):string;
    function  Querydb_Strlist_Count(var sbiao:string;var arrdb,arrstr:TStringlist):integer;
    function  Querydb_Strlist_Opera_Sqlcount(var sbiao:string;var tlist1,tlist2,tlist3:TStringlist):integer;
    function  Querydb_Strlist_Opera_Sqlcount_or(var sbiao:string;var tlist1,tlist2,tlist3:TStringlist):integer;

开始使用

框架摘要

框架完善