⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 046.htm

📁 delphi教程
💻 HTM
📖 第 1 页 / 共 4 页
字号:
face="Arial">Create Database</font><font face="宋体" lang="ZH-CN">命令建立数据库,建立的新数据库一般是以</font><fontface="Arial">GDB</font><font face="宋体" lang="ZH-CN">为扩展名。建立好后,就可以用</font><fontface="Arial">SQL</font><font face="宋体" lang="ZH-CN">语言定义数据库表,例如建立</font><fontface="Arial">EMPLOYEE</font><font face="宋体" lang="ZH-CN">表的</font><fontface="Arial">SQL</font><font face="宋体" lang="ZH-CN">语句如下:</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">定义域名数据类型:</p><p> </font><font face="Arial"></p><p>CREATE DOMAIN FIRSTNAME AS VARCHAR(15);</p><p>CREATE DOMAIN LASTNAME AS VARCHAR(20);</p><p>CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);</p><p>CREATE DOMAIN EMPNO AS SMALLINT;</p><p>CREATE DOMAIN DEPTNO AS CHAR(3)</p><p>CHECK (VALUE = '000' OR (VALUE &gt; '0' AND VALUE &lt;= '999') OR VALUE IS NULL);</p><p>CREATE DOMAIN JOBCODE AS VARCHAR(5)</font><font face="宋体" lang="ZH-CN"></p><p></font><font face="Arial">CHECK (VALUE &gt; '99999');</font><font face="宋体"lang="ZH-CN"></p><p></font><font face="Arial">CREATE DOMAIN JOBGRADE AS SMALLINT</p><p>CHECK (VALUE BETWEEN 0 AND 6);</p><p>CREATE DOMAIN SALARY AS NUMERIC(15, 2)</p><p>DEFAULT 0</p><p>CHECK (VALUE &gt; 0);</p><p> </p><p></font><font face="宋体" lang="ZH-CN">建立</font><font face="Arial">EMPLOYEE</font><fontface="宋体" lang="ZH-CN">表:</p><p> </font><font face="Arial"></p><p>CREATE TABLE EMPLOYEE (EMP_NO EMPNO NOT NULL,</p><p>FIRST_NAME FIRSTNAME NOT NULL,</p><p>LAST_NAME LASTNAME NOT NULL,</p><p>PHONE_EXT VARCHAR(4),</p><p>HIRE_DATE DATE DEFAULT 'NOW' NOT NULL,</p><p>DEPT_NO DEPTNO NOT NULL,</p><p>JOB_CODE JOBCODE NOT NULL,</p><p>JOB_GRADE JOBGRADE NOT NULL,</p><p>JOB_COUNTRY COUNTRYNAME NOT NULL,</p><p>SALARY SALARY NOT NULL,</p><p>FULL_NAME COMPUTED BY (last_name || ', ' || first_name),</p><p>PRIMARY KEY (EMP_NO));</p><p> </font><font face="宋体" lang="ZH-CN"></p><p>  </font><font face="Arial">CHECK</font><font face="宋体" lang="ZH-CN">语句是给数据库字段取值范围加约束条件。</font><fontface="Arial">PRIMARY_KEY</font><font face="宋体" lang="ZH-CN">语句是给表建立关键字索引。</p><p>  如法炮制,就可以定义</font><font face="Arial">IBLOCAL</font><fontface="宋体" lang="ZH-CN">中的所有表。</p><p>  </font><font face="Arial">IBLOCAL</font><font face="宋体" lang="ZH-CN">中的表包括:</p><p> </font><font face="Arial"></p><p>EMPLOYEE CUSTOMER DEPARTMENT EMPLOYEE_PROJECT</p><p>PROJECT SALES SALARY_HISCORY</p><p> </p><p></font><font face="宋体" lang="ZH-CN">各数据库表中的内容如下:</font><fontface="Arial"></p><p> </p><p></font><font face="宋体" lang="ZH-CN">表</font><font face="Arial">18.14EmployeeDemoDB</font><font face="宋体" lang="ZH-CN">中各数据库表的内容</p><p>  </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN">    数据库表名        表中内容</p><p>  </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">───────────────────────────</p><p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN"> </font><fontface="Arial"> </font><font face="宋体" lang="ZH-CN"> </font><font face="Arial">EMPLOYEE</font><font face="宋体" lang="ZH-CN">雇员信息</font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">   </font><font face="Arial">CUSTOMER </font><fontface="宋体" lang="ZH-CN">客户信息</font><font face="Arial"></p><p>DEPARTMENT </font><font face="宋体" lang="ZH-CN">部门信息</font><fontface="Arial"> </p><p>EMPLOYEE_PROJECT </font><font face="宋体" lang="ZH-CN">雇员负责的工程</font><fontface="Arial"> </p><p>PROJECT </font><font face="宋体" lang="ZH-CN">工程信息</font><font face="Arial"></p><p>SALES </font><font face="宋体" lang="ZH-CN">销售信息</font><font face="Arial"></p><p>SALARY_HISTORY </font><font face="宋体" lang="ZH-CN">雇员薪水调整的历史信息</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN">  </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">每个数据库表中都定义了关键字段。关于数据库表中的字段名、类型、大小,这里不再赘述。</font><fontface="Arial"> </font><font face="宋体" lang="ZH-CN"></p><p> </font><font face="Arial"></p><p>18.4.2 </font><font face="宋体" lang="ZH-CN">应用程序分析</p><p> </font><font face="Arial"></p><p>18.4.2.1 TDatabase</font><font face="宋体" lang="ZH-CN">部件的使用</p><p> </p><p>  </font><font face="Arial">CSDEMO</font><font face="宋体" lang="ZH-CN">程序中定义了一个数据库模块部件——</font><fontface="Arial">TDmEmployee</font><font face="宋体" lang="ZH-CN">,它是继承于</font><fontface="Arial">TDataModule</font><font face="宋体" lang="ZH-CN">。</font><fontface="Arial">TDataModule</font><font face="宋体" lang="ZH-CN">是在</font><fontface="Arial">Delphi2.0</font><font face="宋体" lang="ZH-CN">中才出现的专门放置数据访问部件</font><fontface="Arial">(</font><font face="宋体" lang="ZH-CN">如</font><font face="Arial">TDatabase</font><fontface="宋体" lang="ZH-CN">、</font><font face="Arial">TTable</font><font face="宋体"lang="ZH-CN">和</font><font face="Arial">TQuery</font><font face="宋体" lang="ZH-CN">等</font><fontface="Arial">)</font><font face="宋体" lang="ZH-CN">的框架。其它涉及数据库访问的窗体,只要在</font><fontface="Arial">uses</font><font face="宋体" lang="ZH-CN">语句中插入数据库模块所在的库单元,该窗体上的数据库部件就可引用相应的数据库访问部件。</p><p>  在</font><font face="Arial">TDmEmployee</font><font face="宋体" lang="ZH-CN">中定义了一个</font><fontface="Arial">TDatabase</font><font face="宋体" lang="ZH-CN">类型的部件──</font><fontface="Arial">EmployeeDatabase</font><font face="宋体" lang="ZH-CN">。</font><fontface="Arial">EmployeeDatagase</font><font face="宋体" lang="ZH-CN">的主要属性及属性值如下:</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">表</font><font face="Arial">18.15EmployeeDatabase</font><font face="宋体" lang="ZH-CN">部件主要属性的取值</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN">  </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">  属性        属性值</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN">  </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">───────────────────────</p><p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN"> </font><fontface="Arial"> AliasName IBLOCAL</p><p>DatabaseName EmployeeDemoDB</p><p>KeepConnection True</p><p>LoginPrompt False</p><p>TransIsolation tiReadCommitted</p><p>Params USERNAME = SYSDBA</p><p>PASSWORD = masterkey</p><p>Connected True</p><p></font><font face="宋体" lang="ZH-CN">  ━━━━━━━━━━━━━━━━━━━━━━━</p><p> </font><font face="Arial"></p><p>AliasName</font><font face="宋体" lang="ZH-CN">属性所指定的</font><fontface="Arial">IBLOCAL</font><font face="宋体" lang="ZH-CN">,必须已经在</font><fontface="Arial">BDE</font><font face="宋体" lang="ZH-CN">中配置好,</font><fontface="Arial">DatabaseName</font><font face="宋体" lang="ZH-CN">属性指定要使用的数据库名,该数据库名是由应用程序自己定义的,因此不反应到</font><fontface="Arial">BDE</font><font face="宋体" lang="ZH-CN">中,该属性值被</font><fontface="Arial">TTable</font><font face="宋体" lang="ZH-CN">、</font><font face="Arial">TQuery</font><fontface="宋体" lang="ZH-CN">等</font><font face="Arial">DataSet</font><font face="宋体"lang="ZH-CN">部件引用,并且出现在</font><font face="Arial">DataSet</font><fontface="宋体" lang="ZH-CN">部件的</font><font face="Arial">DatabaseName </font><fontface="宋体" lang="ZH-CN">下拉式列表框中。本例中的“</font><fontface="Arial">EmployeeDemoDB</font><font face="宋体" lang="ZH-CN">”,被</font><fontface="Arial">EmployeeTable</font><font face="宋体" lang="ZH-CN">,</font><fontface="Arial">SalesTable</font><font face="宋体" lang="ZH-CN">等所有</font><fontface="Arial">DataSet</font><font face="宋体" lang="ZH-CN">部件引用。</font><fontface="Arial"> </p><p>Connected</font><font face="宋体" lang="ZH-CN">为</font><font face="Arial">True</font><fontface="宋体" lang="ZH-CN">表明,应用程序与数据库将保持联接。</font><fontface="Arial"></p><p>KeepConnection</font><font face="宋体" lang="ZH-CN">属性为</font><fontface="Arial">True</font><font face="宋体" lang="ZH-CN">,表明多次打开和关闭</font><fontface="Arial">EmployeeDemoDB</font><font face="宋体" lang="ZH-CN">数据库中的任意表,应用程序将始终与数据库保持联接,这省却了重复注册的开销。</font><fontface="Arial"></p><p>LoginPrompt </font><font face="宋体" lang="ZH-CN">属性为</font><font face="Arial">False</font><fontface="宋体" lang="ZH-CN">,表明应用程序自动处理与数据库的联接注册,因此,</font><fontface="Arial">Params</font><font face="宋体" lang="ZH-CN">属性中定义了注册的用户名和口令:</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">  </font><font face="Arial">USERNAME =SYSDBA</p><p>PASSWORD = masterkey</p><p> </p><p>TransIsolation</font><font face="宋体" lang="ZH-CN">属性为</font><fontface="Arial">tiReadCommitted</font><font face="宋体" lang="ZH-CN">表明,如果存在多个同时事务,则某一事务只允许读由其它事务提交了的数据。</p><p>  程序中</font><font face="Arial">EmployeeDatabase</font><font face="宋体"lang="ZH-CN">的应用还与事务控制等有关。下文中会介绍这方面的内容。</p><p> </font><font face="Arial"></p><p>18.4.2.2 </font><font face="宋体" lang="ZH-CN">不同数据库表的切换</p><p> </p><p>  在许多数据库应用中都要在不同数据库表之间相互切换,以响应用户输入条件或系统状态的变化。这时,往往需要特别的处理,例如改变光标形状或隐藏数据改变等,尤其是在客户</font><fontface="Arial">/</font><font face="宋体" lang="ZH-CN">服务器应用程序中。因为是用</font><fontface="Arial">SQL</font><font face="宋体" lang="ZH-CN">语句访问远程数据库,有时还要在服务器端执行计算任务,所以客户端的数据变化会有一定的间隔,因此应该让用户明白发生了什么。下面是</font><fontface="Arial">CSDEMO</font><font face="宋体" lang="ZH-CN">在数据库表切换时的处理办法:</p><p> </p><p></font><font face="Arial">procedure TFrmViewDemo.ShowTable( ATable: string );</p><p>begin</p><p>Screen.Cursor := crHourglass; { </font><font face="宋体" lang="ZH-CN">向用户提示当前操作状态</font><fontface="Arial"> }</p><p>VaryingTable.DisableControls; { </font><font face="宋体" lang="ZH-CN">隐藏数据变化</font><fontface="Arial"> }</p><p>VaryingTable.Active := FALSE; { </font><font face="宋体" lang="ZH-CN">关闭原来的数据库表</font><fontface="Arial"> }</p><p>VaryingTable.TableName := ATable; { </font><font face="宋体" lang="ZH-CN">更新数据库表名</font><fontface="Arial"> }</p><p>VaryingTable.Open; { </font><font face="宋体" lang="ZH-CN">打开数据库表</font><fontface="Arial"> }</p><p>VaryingTable.EnableControls; { </font><font face="宋体" lang="ZH-CN">显示所作的修改</font><fontface="Arial"> }</font><font face="宋体" lang="ZH-CN"></p><p></font><font face="Arial">Screen.Cursor := crDefault; { </font><font face="宋体"lang="ZH-CN">重新设置光标形状</font><font face="Arial"> }</font><fontface="宋体" lang="ZH-CN"></p><p></font><font face="Arial">end;</p><p> </font><font face="宋体" lang="ZH-CN"></p><p>  </font><font face="Arial">crHourglass</font><font face="宋体" lang="ZH-CN">型光标表明正在执行</font><fontface="Arial">SQL</font><font face="宋体" lang="ZH-CN">查询。</font><font face="Arial">DisableControls</font><fontface="宋体" lang="ZH-CN">和</font><font face="Arial">EnableControls</font><fontface="宋体" lang="ZH-CN">的作用是隐藏和显示数据变化。</p><p> </font><font face="Arial"></p><p>18.4.2.3 InterBase</font><font face="宋体" lang="ZH-CN">触发器</font><fontface="Arial">(Trigger)</font><font face="宋体" lang="ZH-CN">的应用</p><p> </p><p>  在</font><font face="Arial">CSDEMO</font><font face="宋体" lang="ZH-CN">应用程序中,演示触发器应用的窗体是</font><fontface="Arial">TFromTriggerDemo</font><font face="宋体" lang="ZH-CN">;</p></font><font face="Arial"><p> </p><p></font><font face="宋体" lang="ZH-CN">在该窗体中包含两个</font><fontface="Arial">TDBGrid</font><font face="宋体" lang="ZH-CN">对象。</font><fontface="Arial">DBGrid1</font><font face="宋体" lang="ZH-CN">显示</font><fontface="Arial">EmployeeTable</font><font face="宋体" lang="ZH-CN">中的数据,</font><fontface="Arial">DBGrid2</font><font face="宋体" lang="ZH-CN">显示</font><fontface="Arial">SalaryHistoryTable</font><font face="宋体" lang="ZH-CN">中的数据。它们的主要属性及属性值如下:</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">表</font><font face="Arial">18.16EmlpoyeeTable</font><font face="宋体" lang="ZH-CN">部件主要属性的取值</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN"> ━━━━━━━━━━━━━━━━━━━━━</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">  属 性      </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN">属</font><font face="Arial"> </font><font face="宋体"lang="ZH-CN">性</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">值</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN"> ─────────────────────</font><fontface="Arial"></p><p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><fontface="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><font face="宋体"lang="ZH-CN"> </font><font face="Arial">DatabaseName EmployeeDemoDB</p><p>IndexFieldName Emp_No</p><p>TableName EMPLOYEE</p><p></font><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━</p><p> </font><font face="Arial"></p><p></font><font face="宋体" lang="ZH-CN">表</font><font face="Arial">18.17

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -