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

 1 procedure StrToUniCon(AStr: string; UniCon: TUniConnection);
 2   function GetDBType(i: Integer): string;
 3   begin
 4     case i of
 5       0:
 6         begin
 7           Result := ‘SQL Server‘;
 8         end;
 9       1:
10         begin
11           Result := ‘Oracle‘;
12         end else
13       begin
14         Result := ‘‘;
15       end;
16     end;
17   end;
18 var
19   L: TStrings;
20 begin
21   if Trim(AStr) = ‘‘ then Exit;
22   if (AStr <> ‘‘) and (AStr[Length(AStr)] = ‘|‘) then system.Delete(AStr, Length(AStr), 1);
23   L := TStringList.Create;
24   try
25     L.Delimiter := ‘|‘;
26     L.DelimitedText := AStr;
27     if L.Count = 6 then
28     begin
29       UniCon.LoginPrompt := False;
30       UniCon.ProviderName := GetDBType(StrToInt(L.Values[‘DBTYPE‘]));
31       if SameText(UniCon.ProviderName, ‘Oracle‘) then
32       begin
33         UniCon.SpecificOptions.Clear;
34         UniCon.SpecificOptions.Add(‘Oracle.Direct=True‘);
35         UniCon.SpecificOptions.Add(‘Oracle.PrecisionInteger=11‘);
36         UniCon.server := L.Values[‘SERVER‘] + ‘:‘ + L.Values[‘PORT‘] + ‘:‘ + L.Values[‘DBNAME‘];
37       end else
38       begin
39         UniCon.server := L.Values[‘SERVER‘] + ‘,‘ + L.Values[‘PORT‘];
40         UniCon.Database := L.Values[‘DBNAME‘];
41       end;
42       UniCon.Username := L.Values[‘USERNAME‘];
43       UniCon.Password := L.Values[‘PASSWORD‘];
44     end;
45   finally
46     L.Free;
47   end;
48 end;
 1 procedure TfmDBConectString.bt_testconnClick(Sender: TObject);
 2 var
 3   Con: TUniConnection;
 4 begin
 5   if rgDbType.ItemIndex = -1 then
 6   begin
 7     Application.MessageBox(‘请选择数据库类型!‘, ‘警告‘, MB_ICONWARNING or MB_APPLMODAL);
 8     Exit;
 9   end;
10   Con := TUniConnection.Create(nil);
11   try
12     try
13       StrToUniCon(Self.GetConnectXML, Con);
14       Con.Connect;
15       ShowMessage(‘连接成功!‘);
16       Con.Disconnect;
17     except
18       on E: Exception do
19       begin
20         ShowMessage(E.Message);
21       end;
22     end;
23   finally
24     Con.Free;
25   end;
26 end;
 1 procedure TSyncThread.LoadFromCon(Uni: TUniConnection);
 2 var
 3   S:String;
 4 begin
 5   with TIniFile.Create(ChangeFileExt(GetModuleName(0),‘.ini‘)) do
 6   begin
 7     S:=ReadString(‘Config‘,‘FromConStr‘,‘‘);
 8     if S<>‘‘ then
 9     begin
10       StrToUniCon(S,Uni);
11     end;
12     Free;
13   end;
14 end;
 1  1 function TfmMain.GetToConStr: string;
 2  2 begin
 3  3   with TIniFile.Create(ChangeFileExt(GetModuleName(0), ‘.ini‘)) do
 4  4   begin
 5  5     Result := ReadString(‘Config‘, ‘ToConStr‘, ‘‘);
 6  6     Free;
 7  7   end;
 8  8 end;
 9  9
10 10 procedure TfmMain.SetToConStr(const Value: string);
11 11 begin
12 12   with TIniFile.Create(ChangeFileExt(GetModuleName(0), ‘.ini‘)) do
13 13   begin
14 14     WriteString(‘Config‘, ‘ToConStr‘, Value);
15 15     Free;
16 16   end;
17 17 end;
时间: 02-19

TUniConnection连接的相关文章

Delphi中多线程下使用使用 UniDAC+MSSQL 需要注意的问题(连接前调用CoInitialize)

一般解决方法是在线程开始启用 CoInitialize(nil),线程结束调用 CoUninitialize .如果你使用多种数据库连接,比如三层中经常切换到MSSQL和Oracle,我们只需在判断 TUniConnection 的连接前事件 OnBeforeConnect 写下如下代码: [delphi] view plain copy print? procedure TServDBFunc.ServConnBeforeConnect(Sender: TObject); begin if (

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

XShell 连接虚拟机中的服务器 失败 、连接中断(Connection closed by foreign host.)

在使用XShell连接虚拟机中的服务器时,报以下错误并断开连接,之前连接还是挺稳定的,忽然就这样了 Last login: Thu Aug 10 21:28:38 2017 from 192.168.1.102 [[email protected] ~]# Socket error Event: 32 Error: 10053. Connection closing...Socket close. Connection closed by foreign host. Disconnected f

appuim-java,同时连接多台机器,启动微信

1.配置appuim信息 第一台机 第二台机类似,连接端口和监听端口不能重复 2.appuim连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开TBS内核Insperector调试功能 3.代码 方法 public DesiredCapabilities get_capabilities(int i){ //配置appuim信息 DesiredCapabilities capabilities = new DesiredCapabilities();

Android Studio 连接真机不识别

本人也是初学..写错的请大神多多批评指正! 不胜荣幸!! 强烈推荐使用真机测试..除非是最后关头要测试各个Android系统版本.. 本人遇到的连不上的原因有以下几种: 1  --   手机设置问题.开USB调试   方法:  手机设置 - 开发人员选项 - USB调试  - 勾选 2  --   数据线问题.  有的数据线只能用来充电,有的可以连接存储.识别方法很简单..插上机器有USB存储设备的提示的就可以用.另外数据线如果都露线皮了..就赶紧扔了.十块八块的总比你为这个破问题纠结一下午的好

Kubernetes连接外部数据源

Kubernetes架构下比较核心的问题是数据如何persistance,虽然提供了Persistent volumn的方式,但是对于像数据库之类的产品在kubernetes集群环境中运行和管理还是很有难度的,Kubernetes提供了endpoints这种模式让外部的服务映射成内部的服务,这样比较好的解决了集群对外的连接问题, 如果我们去连接外部的一个oracle数据库,具体的步骤如下: 建立endpoints和service. [[email protected] jdbcservice]#

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

MVC4使用EF6连接mysql数据库

1.需要安装MySql.Data.Entity.EF6,此dll可以在项目-->管理NuGet程序包里联机搜索MySql.Data.Entity.EF6并安装即可2.连接字符串需要添加providerName="Mysql.Data.MySqlClient"3. 将 <providers>     <provider invariantName="System.Data.SqlClient" type="System.Data.En

搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>ASP.NET Core Web应用程序(.NET Core) 选择Web API 此时的目录结构: 添加实体层Entity 右键添加>新建项目>.Net Core类库 添加后的目录结构 BaseEntity: using System; using System.Collections.Gener