检测、建立数据库别名和表格

检测、建立数据库别名和表格,第1张

对于BDE会话期对象来说 BDE别名特别重要 许多方法都需要传递一个数据库的别名作为参数 Tsession提供了管理BDE别名的功能   但是作者往往等到要发布程序时才发现 你的程序由于找不到别名而无法运行 必须在一台已经装了BDE管理程序的机上才能用 你一定非常失望 不要紧 只要在程序中加入以下语句 你的程序就又可以执行   AddAlias用于为Paradox dBase或文本创建别名 不需要连接参数 只需指定一个路径和默认的驱动程序   AddStandardAlias函数则需要传递三个参数 Name参数用于指定名称 Driver参数用于指定SQL Links驱动程序 List参数用于指定连接参数   procedure TForm FormCreate(Sender: Tobject);  begin  with Session do  begin  ConfigMode := cmSession;  try  AddStandardAlias( WorkMen ExtractFilePath(ParamStr( )) PARADOX );  finally  ConfigMode := cmAll;  end;  end;  end; 

上面的是单机版的创建别名方法 还有创建SQL服务器别名的方法   procedure TForm FormCreate(Sender: Tobject);  var MyList: TStringList;  begin  MyList := TStringList Create;  try  with MyList do  begin  Add( SERVER NAME=IB_SERVER:/PATH/DATABASE GDB );  Add( USER NAME=MYNAME );  end;  Session AddAlias( WorkMen INTRBASE MyList);  finally  MyList Free;  end;  end; 

要说明的是 调用AddStandardAlias或AddAlias函数创建的别名只存在于内存中 程序关闭后就没有了 要把别名永远的保存到BDE配置文件中 请调用SaveConfigFile函数来保存到设置文件中     一 数据库别名(Alias) 的定义和检测方法  

当Type 为STANDARD 时 别名定义最为简单 这时仅能采用PARADOX DBASE ASCIIDRV 三种数据库作为缺省的驱动程序(DEFAULT DRIVER)  

另外 还要定义数据库存放路径(PATH) 和ENABLE BCD 才能建立一个完整的数据库别名  

Delphi 的数据库应用程序能自动提供一个Session 组件 这个Session 组件即为应用程序与BDE 的接口  

检测别名 

通过调用Session GetAliasNames(list:Tstrings) 方法 可将当前BDE 配置中的所有数据库别名的名称存放到List 字符 串列表中 list IndexOf( 需要检测的别名 ) 的值会告诉我们这个别名是否存在 ( 其值为 时不存在)  

增加一个新的别名 

Session 组件的过程AddStandardAlias(const Name Path DefaultDriver: string) 可以增加一个标准类型的数据库别名 例如增加一个名为Cntssamp 缺省数据库驱动程序为PARADOX 存放路径为c:\delphp 的别名  

Session AddStandardAlias( Cntssamp c:\delphp Paradox ); 

BDE 配置文件存盘 

Session SaveConfigFile; 

二 数据库中表格的定义和检测方法 

数据库中表格的定义 维护和使用 只有在数据库别名正确设置的情况下才有意义 以TTable 组件为例 必须设置其DatabaseName 为一个实际存在的别名  

检测表格是否存在 

通过调用Session GetTableNames(const DatabaseName   Pattern: string; Extensions SystemTables: Boolean; List:  TStrings) 方法 可将当前指定数据库别名中所这个表格是否存在( 其值为 时不存在)  

建立一个表格 

第一步 设置TTable 组件的DataBase Name( 别名) TableName ( 表格名) TableType( 数据库类型); 

第二步 调用Table FieldDefs Add(const Name: string; 

DataType: TFieldType; Size: Word; Required: Boolean) 增加表格的各个字段 其中Name 为字段名 DataType 为字段类型(常用的有 ftInteger ftString ftDate ftBoolean 等) Size 为字段长度 Required 为该字段是否允许有空值  

第三步 调用Table IndexDefs Add(const Name Fields: string; Options: TIndexOptions) 方法增加表格的索引文件 其中Name为索引文件名 Fields 为索引字段 options 为索引参数的集合 常用的索引参数有ixPrimary( 主键) ixDescending( 降序) ixUnique( 具有唯一值)等  

第四步 调用Table CreateTable 建立表格  

三 一个实例  

在Form Formcreate 事件中写入如下代码 程序启动时 将自动检测是否存在数据库别名Cntssamp 如果没有则建立之 自动检测别名Cntssamp 中是否存在表格TSK( 图书库) 如果没有则自动建立表格TSK  

procedure TForm FormCreate(Sender: TObject);  var  ap:TStringList; {字符串列表变量}  answer:Integer;  begin  ap:=TStringlist Create;  Session GetAliasNames(ap); {取得别名列表}  if (ap IndexOf( Cntssamp )= ) then {判断别名是否存在}  begin  answer:=Application MessageBox(  别名Cntssamp不存在   现在创建吗? BDE信息窗口 mb_OKCancel);  {增加一个名为Cngzsamp的数据库别名}  if answer=IDCANCEL then begin  ap Free;  Exit;  end;  Session AddStandardAlias  ( Cntssamp c:\delphp Paradox );  Session SaveConfigFile; {BDE配置文件存盘}  end ; 

lishixinzhi/Article/program/Delphi/201311/25034

没有区别吧,如果表名过长,起别名可以简化sql语句,如果涉及一个表,就不用,在性能方面的影响微乎其微啊。

查询优化器首先先执行from子句,碰到表名有别名就直接使用了,而后面不是每次都解析的。

但是自身连接时必须使用两个别名。

比如:

1、selec name as “姓名” ,sex as "性别" from user

2、select uname as “姓名”,oname as "英文名" ,usex as "性别" from user u ,other o where uid = oid;

as不是给表里的字段取别名,而是给查询的结果字段取别名。

其目的是让查询的结果展现更符合人们观看习惯,在多张表查询的时候可以直接的区别多张表的同名的字段。

扩展资料:

SQL别名:

SQL别名用于为表或表中的列 提供临时名称。

SQL别名通常用于使表名或列名更具可读性。

SQL一个别名只存在于查询期间。

别名使用AS关键字赋予。

在下列情况下使用别名:

1,查询涉及多个表

2,用于查询函数

3,需要把两个或更多的列放在一起

4,列名长或可读性差

语法

1、表名的别名语法:

SELECT 列名

FROM 表名 AS 别名;

2、列名的别名语法:

SELECT 列名 AS 别名

FROM 表名

3、表名和列名的别名混合使用语法:

SELECT 列名 AS 别名

FROM 表名 AS 别名

语法举例

1、使用表名称别名

有两个表分别是:"Persons" 和 "Product_Orders"。分别为它们指定别名 "p" 和 "po"。列出 "John Adams" 的所有定单。

SELECT poOrderID, pLastName, pFirstName

FROM Persons AS p, Product_Orders AS po

WHERE pLastName='Adams' AND pFirstName='John';

2、使用列名称别名

查询 Persons 表中的 LastName 列 (为其定义别名 '姓氏')和 FirstName 列(为其定义别名 ‘名字’),输出所有结果值。

SELECT LastName AS 姓氏, FirstName AS 名字

FROM Persons

咳绻��菘獠荒苌柚帽鹈�幕澳俏�裁聪低呈�菘獠淮�肪赌兀课蚁胂笫褂孟低呈�菘饽茄�褂米约旱氖�菘狻J莄#和sql sever2005 回答: 我用的是MFC+ODBC,数据库路径在数据源设置中已经存在,程序中不用关心路径。我想C#应该也一样,要么用ODBC,要么用ADO,不会直接 *** 作数据库吧,直接 *** 作为影响程序的应用。 追问: sql数据库,在属性里面或者创建时候设置的那个逻辑名,怎么修改啊?对象资源管理器里面显示的那个名字不应该是逻辑名吗?但是我的显示的还带路径,该怎么让它只显示一个逻辑名呢 回答: 也许我未懂你的应用,实在想不出你表达的意思,对不起!

生效和mysql版本有关。useOldAliasMetadataBehavior这个参数的意思是,使用别名作为返回的key的名称,如selectidas‘ID’fromdual,使用ID而不是id。所以生效和mysql版本有关。

1、对于516版本,亲测useOldAliasMetadataBehavior这个参数不起作用,对于5132版本,working,所以先检查驱动版本。

2、useOldAliasMetadataBehavior这个参数的意思是,使用别名作为返回的key的名称,如selectidas'ID'fromdual,使用ID而不是id。

3、如此MyBatis才会working的更好

4、如果你用apacheDbUtils,最好设置上这个对数,对于springJdbcTemplate没测过。

以上就是关于检测、建立数据库别名和表格全部的内容,包括:检测、建立数据库别名和表格、数据库表别名问题、mysql中 ,如何用 as 取别名 谢谢大家!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9826400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存