第一步:

  放一个TUniconnection并设置相关属性

之后直接使用TUniconnection对象即可

跟踪unidac源码uni单元1540行中可以看到

Connect方法调用CreateIConnection

procedure TUniConnection.CreateIConnection;
var
Connection: TCRConnection;
ConnectionParameters: TCRConnectionParameters; procedure SetSpecificObjectProps(SetAllProps: boolean);
begin
FProvider.SetObjectProps(Connection, FSpecificOptions.Values, SetAllProps);
FSpecificOptions.IsModified := False;
end; begin
CheckProvider; Connection := FIConnection; if Connection = nil then begin
if Pooling and FProvider.IsPoolingSupported then begin
ConnectionParameters := FProvider.GetConnectionParametersClass.Create;
try
ConnectionParameters.MinPoolSize := PoolingOptions.MinPoolSize;
ConnectionParameters.MaxPoolSize := PoolingOptions.MaxPoolSize;
ConnectionParameters.ConnectionLifeTime := PoolingOptions.ConnectionLifetime;
ConnectionParameters.Validate := PoolingOptions.Validate;
ConnectionParameters.Username := Username;
ConnectionParameters.Password := Password;
ConnectionParameters.Server := Server;
ConnectionParameters.IOHandler := FIOHandler;
ConnectionParameters.OnError := DoError;
if FProvider.IsDatabaseSupported then //upd1
ConnectionParameters.SetProp(prDatabase, FDatabase);
if FProvider.IsPortSupported then
ConnectionParameters.SetProp(prPort, Port); FProvider.SetObjectProps(ConnectionParameters, SpecificOptions, True); Connection := FProvider.GetConnectionPoolingManagerClass.GetConnection(
ConnectionParameters, TUniSQLMonitor);
finally
ConnectionParameters.Free;
end;
end
else begin
Connection := GetIConnectionClass.Create;
Connection.IOHandler := FIOHandler;
if FProvider.IsDatabaseSupported then
Connection.SetProp(prDatabase, FDatabase);
if FProvider.IsPortSupported then
Connection.SetProp(prPort, Port);
end; Connection.SetProp(prDisconnectedMode, Options.DisconnectedMode);
Connection.SetProp(prEnableBCD, Options.EnableBCD);
{$IFDEF VER6P}
{$IFNDEF FPC}
Connection.SetProp(prEnableFMTBCD, Options.EnableFMTBCD);
{$ENDIF}
{$ENDIF}
Connection.SetProp(prDefaultSortType, Variant(Options.DefaultSortType));
// if connection is just created we need to set all options
SetSpecificObjectProps(True); SetIConnection(Connection);
end; if FSpecificOptions.IsModified then
SetSpecificObjectProps(False);
end;

  

使用Unidac内置连接池的更多相关文章

  1. Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

    连接池原理 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接池 ...

  2. 开源数据库连接池之Tomcat内置连接池

    本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数 ...

  3. 线程池的极简用法——内置线程池multiprocessing

    大家好,今天博主来分享一个线程池的小捷径--内置线程池的使用方法 一.背景 说道多线程,对变成层有了解的小伙伴一定不陌生,虽然不知道是什么但是也会从各大网站.面试分享等途径听说过.这里就不做过多的介绍 ...

  4. java内置线程池ThreadPoolExecutor源码学习记录

    背景 公司业务性能优化,使用java自带的Executors.newFixedThreadPool()方法生成线程池.但是其内部定义的LinkedBlockingQueue容量是Integer.MAX ...

  5. 为什么阿里Java规约禁止使用Java内置线程池?

    IDEA导入阿里规约插件,当你这样写代码时,插件就会自动监测出来,并给你红线提醒. 告诉你手动创建线程池,效果会更好. 在探秘原因之前我们要先了解一下线程池 ThreadPoolExecutor 都有 ...

  6. Java 四种内置线程池

    引言 我们之前使用线程的时候都是使用 new Thread 来进行线程的创建,但是这样会有一些问题 每次 new Thread 新建对象性能差 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可 ...

  7. jdbc事务处理和连接池

    JDBC: * JDBC概念:Java DataBase Connectivity(Java数据库连接) SUN公司提供的一组连接数据库API. * JDBC开发步骤: * 1.注册驱动. * 2.获 ...

  8. JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件

    JdbcTemplate的使用 Spring为了各种支持的持久化技术,都提供了简单操作的模版和回调. JdbcTemplate 简化 JDBC 操作HibernateTemplate 简化 Hiber ...

  9. mongoDB中的连接池(转载)

    一.mongoDB中的连接池 刚上手MongoDB,在做应用时,受以前使用关系型数据库的影响,会考虑数据库连接池的问题! 关系型数据库中,我们做连接池无非就是事先建立好N个连接(connection) ...

随机推荐

  1. 淘宝HSF服务的原理以及简单的实现

    淘宝HSF服务具体来说分三个应用:api接口,service服务,本地应用. 最基本的Api服务应该是十分干净的,不含方法,只有接口.它是要被打包(jar包的形式)到中央仓库去的. service服务 ...

  2. ActiveMQ, Qpid, HornetQ and RabbitMQ in Comparison

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. apache配置directoryindex

    为了让程序自动执行目录下的某个文件,可以配置虚拟主机中的directoryindex 如: <VirtualHost *:80>    DocumentRoot "D:/var/ ...

  4. Spring + JDK Timer Scheduler Example--reference

    http://www.mkyong.com/spring/spring-jdk-timer-scheduler-example/ In this example, you will use Sprin ...

  5. AFNetworking 3.0迁移指南

    AFNetworking是一款在OS X和iOS下都令人喜爱的网络库.为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持. ...

  6. Android(java)学习笔记138:html嵌入到java显示乱码

    解决方案: 使用 loadData方法是中文部分会出现乱码,即使指定“utf-8”.“gbk”.“gb2312”也一样. webView.getSettings().setDefaultTextEnc ...

  7. 安装完Kali linux 之后 需要配置的一些 常用软件 记录

    apt 阿里云开源镜像站 deb http://mirrors.aliyun.com/kali sana main non-free contribdeb http://mirrors.aliyun. ...

  8. c语言,strcmp(),字符串比较,看Asic 码,str1>str2,返回值 > 0;两串相等,返回

    #include<stdio.h> #include<string.h> int main() {  char *buffer1="aaa",*buffer ...

  9. PostgreSQL 修改列报错:cannot be cast automatically to type integer

    如果你直接使用可视化工具修改一个varchar字段为int类型的时候,可能会报错, 这里就需要自己去写一个语句去修改了 调整执行语句:ALTER TABLE table_name ALTER COLU ...

  10. 高性能web站点建设(一)

    一.等待 客户端发送请求到服务端相应请求的过程,是需要等待的,而等待时间的长短通常是衡量这个网站“快慢”的重要指标,在这等待的时间里,到底发生了什么?概括来说经历了以下几个部分时间: 数据在网络上传输 ...