UniDAC使用说明简单版1.docx

上传人:b****8 文档编号:10854254 上传时间:2023-02-23 格式:DOCX 页数:13 大小:40.73KB
下载 相关 举报
UniDAC使用说明简单版1.docx_第1页
第1页 / 共13页
UniDAC使用说明简单版1.docx_第2页
第2页 / 共13页
UniDAC使用说明简单版1.docx_第3页
第3页 / 共13页
UniDAC使用说明简单版1.docx_第4页
第4页 / 共13页
UniDAC使用说明简单版1.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

UniDAC使用说明简单版1.docx

《UniDAC使用说明简单版1.docx》由会员分享,可在线阅读,更多相关《UniDAC使用说明简单版1.docx(13页珍藏版)》请在冰豆网上搜索。

UniDAC使用说明简单版1.docx

UniDAC使用说明简单版1

UniDAC使用说明

整理:

兵临成下QQ:

383530895

UniDAC官方网址:

一、连接数据库ConnectingtoDatabase

1、通用连接属性

●Provider

第一个就应该设置的属性,指定要连接的数据库类型,根据指定的数据库连接类型不同其它的设置也会发生相应的变化;

●UsernameandPassword

登录数据的有效用户名和密码;

●Server

通常将此设成要连接数据库所在的计算机名或IP地址,如果将此属性设置为空,对于MySQL,InterBase连接数据库方式,UniDAC将试图连接本地(Localhost)。

Oracle:

客户端模式下,指定的Server名称一定要出现在tnsnames.ora中,且有效,设置效果如下:

withUniConnection1do

begin

ProviderName:

='Oracle';

Server:

='ORCL';

Username:

='username';

Password:

='password';

end;

直连模式(Directmode)下:

在此模式下,运行软件的计算机可以不安装Oracle客户端而连接Oracle数据库,但要做以下设置:

1)设置直连模式

2)设置Server

指定Server格式:

Host:

Port:

SID.

注:

客户端模式和直连模式的设置不能混淆,否则无法执行。

两种格式严格区分。

效果如下:

withUniConnection1do

begin

ProviderName:

='Oracle';

Server:

='192.168.1.113:

1521:

ORCL';

Username:

='Username';

Password:

='Password3';

end;

SQLServer:

指定要连接的数据库所在的网络IP,且有效,如果采用的不是默认端口(1433),Server应该这样设置:

HostName,PortNumber.

●Database

这个属性只对SQLServer,MySQL,PostgreSQL,InterBase,andSQLite连接方式有效,

●Port

指定TCP/IP协议访问的有效端口

MySQL–默认端口3306

PostgreSQL-默认端口5432

二、UniDAC(版本:

2.7)连接数据库必要文件或局限需求

1、Oracle连接

Oracle在采用直连模式将受到以下限制:

特别要注意的是(包括:

应用TUniLoader):

1)、应用直连模式,本地执行程序的客户机必须要安装TCP/IP协议

2)、注意防火墙

3)、数据库的triggers、checkconstraints、clusteredtables、loadingofremoteobjects、user-definedtypes将得不到支持

4)、available,likeOBJECT,ARRAY,REF,XML,BINARY_DOUBLE,BINARY_FLOAT这些类型将变为不可用

5)、TUniLoader的应用版本应高于Oracleclient8.17

以下是英文原文:

●triggersarenotsupported

●checkconstraintsarenotsupported

●referentialintegrityconstraintsarenotsupported

●clusteredtablesarenotsupported

●loadingofremoteobjectsisnotsupported

●user-definedtypesarenotsupported

●LOBsmustbespecifiedafterallscalarcolumns

●LONGsmustbespecifiedlast

●YoucannotuseTUniLoaderinathreadedOCIenvironmentwithOracleclient8.17orlower.

●ConnectusingtheTCP/IPnetworkprotocolonly.

●Sometypesarenotavailable,likeOBJECT,ARRAY,REF,XML,BINARY_DOUBLE,BINARY_FLOAT.

●Certainproblemsmayoccurwhenusingfirewalls.

●NLSconversionontheclientsideisnotsupported.

●TransparentApplicationFailoverisnotsupported.

●Statementcachingisnotavailable.

●OSauthenticationandchangingexpiredpasswordsfeaturesarenotavailable.

●TheDESauthenticationisused.

●OracleAdvancedSecurityisnotsupported.

●Wedonotguaranteestabilityofmultithreadedapplications.ItishighlyrecommendedtousetheseparateTUniConnectioncomponentforeachthreadwhenusingUniDACfromdifferentthreads.

 

1、SQLServer连接

1)提供连接支持

服务端:

SQLServer2005(includingCompactandExpresseditions),SQLServer2000,SQLServer7,andMSDE.

客户端:

SQLOLEDBandSQLNativeClient.

2)环境需求

MDAC(MicrosoftDataAccessComponents)版本不低于2.5

2、MySQL连接

MySQL提供的连接也包括直连和客户端连接方式,默认采用的是直连方式,如果要更改连接方式,在应用程序分发时要带上libmysqld.dll

二、Delphi与各数据库数据类型比较

Delphi数据类型与各数据库数据类型对比如下表,如有具体说明见表中脚注:

DelphiType

OracleTypes

SQLServerTypes

MySQLTypes[1]

InterBaseTypes

PostgreSQLTypes

SQLiteTypes

ftSmallint

NUMBER(p,0)[2]

(p<5)

SMALLINT

TINYINT(M)(M>1)

SMALLINT

SMALLINT

SMALLINT

TINYINT

SMALLINT

ftWord

-

TINYINT

TINYINT(M)UNSIGNED(M>1)

SMALLINTUNSIGNED

YEAR

-

-

-

ftInteger

NUMBER(p,0)[2]

(4

INT

MEDIUMINT

MEDIUMINTUNSIGNED

INT

INTEGER

INTEGER

INTEGER

INT

ftLargeint

NUMBER(p,0)[2]

(9

BIGINT

BIT

INTUNSIGNED

BIGINT

BIGINTUNSIGNED

BIGINT

BIGINT

BIGINT

ftFloat

NUMBER(p,s)[2]

BINARYFLOAT(FLOAT)

BINARYDOUBLE

DECIMAL(p,s)[3]

FLOAT

REAL

DECIMAL(p,s)[3]

FLOAT

DOUBLE

NUMBER(p,s)[3]

FLOAT

DOUBLEPRECISION

DECIMAL[3]

REAL

DOUBLEPRECISION

DECIMAL(p,s)[3]

FLOAT

DOUBLEPRECISION

ftBCD

NUMBER(p,s)[2]

(p<15)and(s<5)

DECIMAL(p,s)[3]

(p<15)and(s<5)

DECIMAL(p,s)[3]

(p<15)and(s<5)

DECIMAL(p,s)[3]

(p<15)and(s<5)

DECIMAL[3]

DECIMAL[3]

ftFMTBcd

NUMBER(p,s)[2]

(14

(4

DECIMAL(p,s)

(14

(4

DECIMAL(p,s)[3]

(14

(4

DECIMAL(p,s)[3]

(14

(4

DECIMAL[3]

DECIMAL[3]

ftCurrency

-

MONEY

SMALLMONEY

-

-

MONEY

MONEY

 

ftBoolean

-

BIT

TINYINT[4]

BOOL[4]

BOOLEAN[4]

BOOLEAN

BOOLEAN

BOOLEAN

 

ftString

VARCHAR2

NVARCHAR2

VARCHAR

CHAR

NCHAR

RAW[5]

INTERVALDAYTOSECOND

INTERVALDAYTOMONTH

ROWID

UROWID

CHAR

VARCHAR

CHAR

VARCHAR

ENUM

SET

BINARY[6]

VARBINARY[6]

CHAR

VARCHAR

CHAR

VARCHAR

CHAR

VARCHAR

ftWideString

Seenote[7]

NCHAR

NVARCHAR

Seenote[7]

Seenote[7]

Seenote[7]

Seenote[7]

ftMemo

LONG

Alsoseenote[8]

TEXT

NTEXT[9]

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

BLOBTEXT

TEXT

TEXT

CLOB

ftWideMemo

Seenote[10]

NTEXT[11]

Seenote[10]

Seenote[10]

Seenote[10]

Seenote[10]

ftOraClob

CLOB

NCLOB

-

-

-

-

-

 

ftBlob

LONGRAW

IMAGE

TINYBLOB

BLOB

MEDIUMBLOB

LONGBLOB

SpatialDataTypes

BLOBBINARY

BYTEA

BLOB

ftOraBlob

BLOB

-

-

-

LARGEOBJECT

-

ftBytes

-

BINARY

TIMESTAMP

BINARY

-

-

-

ftVarBytes

RAW

VARBINARY

VARBINARY

CHAR

VARCHAR

(CHARSET=OCTETS)

-

BINARY

VARBINARY

 

ftDate

-

-

DATE

DATE

DATE

DATE

ftDateTime

DATE

DATE

DATETIME

TIMESTAMP

TIMESTAMP

TIMESTAMP

DATETIME

ftTime

-

-

TIME

TIME

TIME

TIME

ftTimeStamp

TIMESTAMP

TIMESTAMPWITHTIMEZONE

-

-

-

-

-

 

ftCursor

REFCURSOR

-

-

-

REFCURSOR

-

ftGuid

-

UNIQUEIDENTIFIER

-

-

-

-

ftVariant

-

SQL_VARIANT

-

-

-

-

 

NOTSUPPORTED

BFILE

OBJECT

XML

CURSOR

XML

TABLE

-

-

-

-

[1]–如果FieldsAsString选项被设置True,则除BLOB和TEXT数据类型外,全部做为ftString来处理

[2]–OracleNUMBER数据类型与Delphi数据类型对应方式:

ifscaleequalszero,providerchecksvaluesofthespecificoptionstochoosethecorrectDelphitypeinthefollowingorder:

1.1fieldprecisionislessorequalPrecisionSmallint(defaultis4)-usesftSmallint;

1.2fieldprecisionislessorequalPrecisionInteger(defaultis9)-usesftInteger;

1.3fieldprecisionislessorequalPrecisionLargeInt(defaultis18)-usesftLargeint;

ifscaleisgreaterthanzero,theappropriateDelphitypeischosenusingthefollowingsequenceofrules:

.

2.1fieldprecisionislessorequalPrecisionFloat(defaultis0)-usesftFloat;

2.2EnableBCDisTrueandfieldprecision,scaleislessorequalPrecisionBCD(defaultis14,4)-usesftBCD;

2.3EnableFMTBCDisTrueandfieldprecision,scaleislessorequalPrecisionFMTBCD(defaultis38,38)-usesftFMTBCD;

2.4usesftFloat.

[3]-TheappropriateDelphitypeischosenusingthefollowingsequenceofrules:

EnableBCDisTrueandfieldprecision,scaleislessorequal14,4-usesftBCD;

EnableFMTBCDisTrue-usesftFMTBCD;

usesftFloat.

[4]-IftheEnableBooleanoptionisTrue

[5]-IftheRawAsStringoptionisTrue

[6]-IftheBinaryAsStringisTrue

[7]-IftheUseUnicodeoptionisTrue,allservertypesmappedtoftStringwillbemappedtoftWideString.

[8]-IftheLongStringsoptionisFalse,andthefieldlengthisgreaterthan255,allservertypesmappedtoftStringwillbemappedtoftMemo.

[9]-ForallDelphiversionspriortoBDS2006.

[10]-IftheUseUnicodeoptionisTrue,inBDS2006andlaterversionsallservertypesmappedtoftMemowillbemappedtoftWideMemo.

[11]-ForBDS2006andhigherIDEversions.

三、UniDAC更新数据

1、数据自动更新

TUniTable、TUniQuery和TUniStoredProc是用来检索和编辑数据的UniDAC控件,

四、主从关系表

五、存储过程

1、TUniConnection,TUniSQL,TUniQuery,TUniStoredProc均可以执行存储过程。

TUniConnection:

是一种最简单的执行存储过程的控件,但他有很多限制。

TUniConnection不能具有SQL、存储过程名和参数,不支持输出参数也不支持存储执行的预准备。

当然,如果只是运行一个既没有返回也没有输出参数设置,那TUniConnection是一个不错的选择。

TUniSQL:

TUniSQL是一个被分离出的小控件,执行SQL语句但不返回结果集。

它没有数据存储,但要消耗一些内存,但比TUniQuery和TUniStoredProc的执行速度快。

TUniQuery:

TUniQuery除具有TUniSQL的执行功能外,还能返回结果集。

TUniStoredProc:

TUniStoredProc是专门用来执行存储过程的一个控件,可以返回结果集、输出参数、执行准备以及通过CreateProcCall方法初始化等。

2、参数类型

UniDAC支持四种参数类型:

input,output,input/output,result

六、事务处理

TUniConnection通过StartTransaction,Commit,Rollback等方法来控制本地事务,判断一个事务是否开启用InTransaction。

七、控件详解

1、TUniConnection

建立和控件数据连接的控件,能访问的数据库包括:

Oracle,SQLServer,MySQL,InterBase,Firebird,和PostgreSQL.

虽然UniDAC对不同的数据库提供了统一的访问接口,但是对个别数据库还是要进行一些特殊的设置,这些设置是一个字符串列表,你可以按以下代码进行设置:

UniConnection.SpecificOptions.Values['CharLength']:

='1';

1、Oracle

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1