📄 delp022.html
字号:
<html><!-- #BeginTemplate "/Templates/delphi.dwt" --><head><!-- #BeginEditable "doctitle" --> <title>独孤之所 - 在Delphi中建表</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta NAME="author" VALUE="独孤求败(Fwolf)"><!-- #EndEditable --> <style type="text/css"><!--body { font-family: "宋体"; font-size: 9pt}td { font-family: "宋体"; font-size: 9pt}a:hover { text-decoration: underline}a { text-decoration: none}input { font-family: "宋体"; font-size: 9pt}select { font-family: "宋体"; font-size: 9pt}--></style></head><body><table width="98%" border="0" align="center"> <tr> <td width="33%"><a href="../../../index.html"><img src="../../../logos/fwolf9.gif" width="271" height="60" alt="独孤之所首页" border="0"></a></td> <td width="67%"> <div align="center"> </div> </td> </tr></table><table width="100%" border="0" align="center" cellspacing="1" bgcolor="#66FF66"> <tr> <td width="90%"><a href="../../../index2.html">独孤之所</a> > <a href="../../book.htm">天下文章</a> > <a href="../delphi.html">Delphi</a> > <font color="#FF3333"><!-- #BeginEditable "2%C7%F8" -->在Delphi中建表<!-- #EndEditable --></font> </td> <td width="10%"> <div align="center"><a href="javascript:window.close()">[关闭窗口]</a></div> </td> </tr></table><hr size="1"><br><table width="584" border="0" align="center" cellspacing="1"> <tr> <td width="582"> <font color="#FF3333"> <div align="center"><!-- #BeginEditable "%B1%EA%CC%E2" -->在Delphi中建表<!-- #EndEditable --></div> </font> </td> </tr> <tr> <td width="582"> <div align="center"><!-- #BeginEditable "%D7%F7%D5%DF" --><!-- #EndEditable --></div> </td> </tr> <tr> <td width="582"><!-- #BeginEditable "%CE%C4%B1%BE%C7%F8" --> <center> <p align="left">一、数据库别名(Alias)的地位 <br> Delphi内建的数据库引擎BDE(Borland Database Engine),提供了强大的数库处理功能,BDE是Delphi数据库功能的核心部分。 <br> <br> 以只有单机使用的本地数据库为例,Delphi程序可以直接通过BDE来控制数据库数据的存取。这种存取控制是以配置好BDE参数为前提的,具体的来说是正确设置了数据库的别名(Alias),Delphi的最常用的数据库访问组件TTable,其属性DataBaseName即为已经定义的数据库别名,在没有定义数据库别名的情况下,是不能访问具体的数据库表格的。因此,在建立数据库表格时,必须有两个过程:一是通过BDE检测相应的数据库别名是否存在,如果不存在,则应首先建立相应的数据库别名;二是检测该数据库别名(即DataBaseName)中是否存在需要建立的数据库表格,如果不存在,才建立之。这样,才能保护原有表格的数据不丢失。 <br> <br> <br> 二、Session组件: Delphi数据库程序与BDE的接口 <br> Delphi自动为数据库应用程序提供了一个Session组件,这个Session组件是应用程序与BDE接口的关键。下面是Session组件关于BDE接口的几个过程的原型说明。 <br> 1.GetAliasNames(list:Tstrings);将当前BDE配置中的所有数据库别名的名称存放到List字符串列表中。 <br> <br> 2.AddStandardAlias(const Name, Path, DefaultDriver: string);增加一个标准类型的数据库别名。例如增加一个名为Cntssamp,缺省数据库驱动程序为PARADOX、存放路径为c:\delphp11的别名: <br> Session.AddStandardAlias('Cntssamp','c:\delphp11','Paradox'); <br> <br> 3.GetTableNames(const DatabaseName, Pattern: string; Extensions,SystemTables: Boolean; List: TStrings);可将指定数据库别名中所有表格的名称存放到List字符串列表中。 <br> <br> 4.SaveConfigFile; 将BDE配置存盘。 <br> 另外,用List.IndexOf('指定串')的值判断字符串列表中是否有需要的字符串,来决定是否应建立新的数据库别名和数据库表格。 <br> <br> 三、一个实例 <br> 在Form1.FormCreate事件中写入如下代码,程序启动时,将自动检测是否存在数据库别名Cntssamp,如果没有则建立之;自动检测别名Cntssamp中是否存在表格TSK(图书库),如果没有则自动建立表格TSK。 <br> procedure TForm1.FormCreate(Sender: TObject); <br> var <br> ap:TStringList; {字符串列表变量} <br> answer:Integer; <br> begin <br> ap:=TStringlist.Create; <br> Session.GetAliasNames(ap); {取得别名列表} <br> if (ap.IndexOf('Cntssamp')=-1) then {判断别名是否存在} <br> begin <br> answer:=Application.MessageBox('别名Cntssamp不存在,现在创建吗?','BDE信息窗口',mb—OKCancel);{增加一个名为Cngzsamp的数据库别名} <br> if answer=IDCANCEL then <br> begin <br> ap.Free; <br> Exit; <br> end; <br> <br> Session.AddStandardAlias('Cntssamp','c:\delphp11','Paradox'); <br> Session.SaveConfigFile; {BDE配置文件存盘} <br> end ; <br> <br> ap.Clear; {取得别名Cngzsamp中的所有表格名称列表} <br> Session.GetTableNames('Cntssamp','',False,False,ap); <br> if (ap.IndexOf('TSK')=-1) then {判断表格是否存在} <br> begin <br> answer:=Application.MessageBox('别名Cntssamp中不存在表格TSK,现在创建吗?','表格信息窗口',mb—OKCancel); <br> if answer=IDCANCEL then <br> begin <br> ap.Free; <br> Exit; <br> end; <br> <br> with table1 do <br> begin <br> Active:=false; <br> DatabaseName:='Cntssamp'; {数据库别名} <br> TableName:='TSK'; {表格名} <br> TableType:=ttParadox; {数据库类型} <br> with FieldDefs do <br> begin {增加字段} <br> Clear; <br> Add('SH',ftString,30,False); {书号 String(30)} <br> Add('SM',ftString,30,False); {书名 String(30)} <br> Add('CBS',ftString,20,False); {出版社 String(20)} <br> Add('CBRQ',ftDate,0,False); {出版日期 Date} <br> Add('YS',ftInteger,0,False); {页数 Integer} <br> end; <br> <br> with IndexDefs do <br> begin {增加索引} <br> Clear; {按书号字段建立主索引} <br> Add('SHSY','SH',[Primary,ixUnique]); <br> end; <br> <br> CreateTable; {创建表格} <br> end; <br> end ; <br> <br> ap.free; {释放变量ap} <br> end; <div align=right></div> </center> <!-- #EndEditable --></td> </tr> <tr> <td width="582"><!-- #BeginEditable "%B1%B8%D7%A2" -->中国计算机报社<!-- #EndEditable --></td> </tr></table><br><hr size="1"><table width="25%" border="1" align="center" cellspacing="0" cellpadding="0" bordercolorlight="#CCCCFF" bordercolordark="#000033" bordercolor="#6666FF"> <tr align="center"> <td> 转载请注明出于 <a href="http://fwolf.yeah.net" target="_blank">独孤之所</a><!--Fwolf出品fwolf001@163.nethttp://fwolf.yeah.net --> </td> </tr> <tr align="center"> <td> <script>document.write("<a href=http://www.topcn.com/siteinfo.asp?UserName=fwolf2000&SiteType=0 target=_blank><img src=http://www1.topcn.com:8081/statistics.asp?fwolf2000&referURL="+escape(top.document.referrer)+"&curURL="+escape(top.document.URL)+"&imgStyle=0"+" border=0 alt='Top中文网站龙虎榜' ></a>");</script> <script>document.write("<a href=http://www.textclick.com/viewmain.asp?name=fwolf2000 target=_blank><img src=http://ad.t2t2.com/stat.asp?user=fwolf2000&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" alt=太极统计 border=0></a>");</script> </td> </tr></table><table width="100%" border="0" align="center" cellspacing="1" bgcolor="#66FF66"> <tr> <td width="10%"><a href="javascript:window.close()">[关闭窗口]</a></td> <td width="90%"> <div align="left"></div> </td> </tr></table><div id="Layer1" style="position:absolute; width:470px; height:60; z-index:1; left: 293px; top: 13px; overflow: hidden"> <table width="100%" border="0" cellspacing="0" cellpadding="0" height="60"> <tr> <td><a href="http://202.99.67.100/adclick2/click/random.cgi?job=go&id=1490" target="_blank"><img src="http://202.99.67.100/adclick2/click/random.cgi?id=1490" border="0" width="468" height="60"></a> </td> </tr> </table></div><div align="center"></div><p align="center"> <script language="JavaScript1.1" src=http://ad.t2t2.com/textclick.asp?user=fwolf&style=4&bkcolor=no></script></p><p align="center"> </p></body><!-- #EndTemplate --></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -