TUniConnection连接
ChangeFileExt
RealTime_Server.ini:
[Config]
FromConStr=DBTYPE=0|SERVER=127.0.0.1|PORT=7788|DBNAME=jzxtld|USERNAME=sa|PASSWORD=admin
ToConStr=DBTYPE=0|SERVER=127.0.0.1|PORT=7788|DBNAME=jzxxsjs|USERNAME=sa|PASSWORD=admin
procedure StrToUniCon(AStr: string; UniCon: TUniConnection);
function GetDBType(i: Integer): string;
begin
case i of
:
begin
Result := 'SQL Server';
end;
:
begin
Result := 'Oracle';
end else
begin
Result := '';
end;
end;
end;
var
L: TStrings;
begin
if Trim(AStr) = '' then Exit;
if (AStr <> '') and (AStr[Length(AStr)] = '|') then system.Delete(AStr, Length(AStr), );
L := TStringList.Create;
try
L.Delimiter := '|';
L.DelimitedText := AStr;
if L.Count = then
begin
UniCon.LoginPrompt := False;
UniCon.ProviderName := GetDBType(StrToInt(L.Values['DBTYPE']));
if SameText(UniCon.ProviderName, 'Oracle') then
begin
UniCon.SpecificOptions.Clear;
UniCon.SpecificOptions.Add('Oracle.Direct=True');
UniCon.SpecificOptions.Add('Oracle.PrecisionInteger=11');
UniCon.server := L.Values['SERVER'] + ':' + L.Values['PORT'] + ':' + L.Values['DBNAME'];
end else
begin
UniCon.server := L.Values['SERVER'] + ',' + L.Values['PORT'];
UniCon.Database := L.Values['DBNAME'];
end;
UniCon.Username := L.Values['USERNAME'];
UniCon.Password := L.Values['PASSWORD'];
end;
finally
L.Free;
end;
end;
1 procedure TfmDBConectString.bt_testconnClick(Sender: TObject);
var
Con: TUniConnection;
begin
if rgDbType.ItemIndex = - then
begin
Application.MessageBox('请选择数据库类型!', '警告', MB_ICONWARNING or MB_APPLMODAL);
Exit;
end;
Con := TUniConnection.Create(nil);
try
try
StrToUniCon(Self.GetConnectXML, Con);
Con.Connect;
ShowMessage('连接成功!');
Con.Disconnect;
except
on E: Exception do
begin
ShowMessage(E.Message);
end;
end;
finally
Con.Free;
end;
end;
procedure TSyncThread.LoadFromCon(Uni: TUniConnection);
var
S:String;
begin
with TIniFile.Create(ChangeFileExt(GetModuleName(),'.ini')) do
begin
S:=ReadString('Config','FromConStr','');
if S<>'' then
begin
StrToUniCon(S,Uni);
end;
Free;
end;
end;
function TfmMain.GetToConStr: string;
begin
with TIniFile.Create(ChangeFileExt(GetModuleName(), '.ini')) do
begin
Result := ReadString('Config', 'ToConStr', '');
Free;
end;
end; procedure TfmMain.SetToConStr(const Value: string);
begin
with TIniFile.Create(ChangeFileExt(GetModuleName(), '.ini')) do
begin
WriteString('Config', 'ToConStr', Value);
Free;
end;
end;
TUniConnection连接的更多相关文章
- Delphi FireMonkey使用UniDAC 连接MySQL
首次用Delphi XE6 开发安卓程序,并没有在网上找到连接远程MySQL服务器的文档,自己摸索一番,发现UniDAC控件新版本也已支持了FireMonkey下的开发.遂记下连接方法和大家分享. 1 ...
- Delphi中多线程下使用使用 UniDAC+MSSQL 需要注意的问题(连接前调用CoInitialize)
一般解决方法是在线程开始启用 CoInitialize(nil),线程结束调用 CoUninitialize .如果你使用多种数据库连接,比如三层中经常切换到MSSQL和Oracle,我们只需在判断 ...
- 获取 TUniConnection.SpecificOptions默认值和下拉框列表值
TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置! Specific ...
- unidac连接ORACLE免装客户端驱动
当你选择Oracle作数据库服务器时,客户端一般需要装一个肥硕的200M左右客户端,而且还要做连接配置,尤其是C/S模式,客户端多的时候非常不便.当然,网上也有一个10M左右的Oracle精简客户 ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- SQL Server 无法连接到服务器。SQL Server 复制需要有实际的服务器名称才能连接到服务器。请指定实际的服务器名称。
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html SQL性能优化汇总篇:http://www.cnblogs.com/dunit ...
- Linux 开机时网络自动连接
简单版本: cd /etc/sysconfig/network-scripts/ vi ifcfg-enoXXX 输入:reboot重启 或者输入:service network restart ...
- 在ubuntu16.10 PHP测试连接MySQL中出现Call to undefined function: mysql_connect()
1.问题: 测试php7.0 链接mysql数据库的时候发生错误: Fatal error: Uncaught Error: Call to undefined function mysqli_con ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
随机推荐
- JAVA语言的本质优势
虽然Java应用最广泛,但与其它语言比并没有什么技术上的优势.常会看到各种抱怨,说Java语言设计不如C#,对native的精确控制和灵活性不然C++,动态性.开发效率方便不如Ruby,Python, ...
- Mysql-cluster7.5
Data nodes: shell> rpm -Uhv mysql-cluster-community-data-node-7.5.5-1.1.el7.x86_64.rpm SQL nodes: ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- backbone学习总结(一)
入职第三天,新公司项目用到backbone+underscore+require等框架,前两天把项目的开发环境都配置好啦,项目也能跑起来,现在准备好好学习公司自己的框架以及用到的框架,有点想吐槽,开发 ...
- 罗辑思维(罗胖)阿瑟·黑利书:《大饭店》、《晚间新闻》、《超载》、《最后诊断》、《钱商》、《身高居位》电子书 pdf和mobi格式得到下载
阿瑟黑利 mobi kindle mobi/txt 1.[智读]_超载.txt 2.[智读]_大饭店 - 阿瑟·黑利.mobi 3.[智读]_钱商 - [加拿大]阿瑟·黑利.mobi 4.[智读]_身 ...
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- 教你用plsql建立索引加快查询oracle数据的速度
http://jingyan.baidu.com/article/3f16e003cb9a0f2591c10324.html?qq-pf-to=pcqq.c2c PL/SQL Developer是一个 ...
- 一条SQL查出当月的每一天
from master..spt_values ),,),'2013-02-03')+'-01' as datetime)) 结果: 返回带有年月日的日期 ),),) AS datetime) fro ...
- 3.2 一般的哈尔空间Vj
例3.2给予我们继续往下面做的动力.很明显的我们对于g(t)的逼近还是太粗糙了.很自然的,我们会想到,如果继续细分我们的短点,比如每1/2取一个值,甚至每1/4取一个值,那么就会有更好的逼近效果. 不 ...
- 【学】React的学习之旅2 - React Component的生命周期
分成三个状态: Mounted Update Unmounted Mounted:当我们看到组件在浏览器中从无到有的效果的时候,mounted已经结束了,这个组件已经被mounted了 有这个阶段有2 ...