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,百度下载安装) # ...
随机推荐
- java1234教程系列笔记 S1 Java SE 02 eclipse初步使用、注释、标识符
第二章 第一节,讲了简单使用eclipse 写控制台程序.没有讲包,直接用的默认的包名. 还是编写了两个控制台例子 public class HelloWorld { public static vo ...
- Window memcache 使用
一.memcache配置 1. 下载memcache 32位系统 1.2.5版本:http://static.runoob.com/download/memcached-1.2.5-win32-bin ...
- 安装zabbix,make的时候报错
CDPATH= && /bin/bash /install/Mesa-/bin/missing aclocal-1.14 -I m4 /install/Mesa-/bin/missin ...
- ANY数据类型的使用
程序举例: TAR1 #T_AR1 //save addressregister 1 TAR2 #T_AR2 //save addressregister 2 LAR1 P##DST_BLOCK_ ...
- Python 字符串格式化
Python 字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存 一 ...
- 在IT行业换一个领域
开发做了不到两个月,就不做了.原因是自己不喜欢开发,感觉开发的东西很麻烦.也许说到麻烦,很多人都要教训我了,干什么不麻烦.我也不想反驳什么,因为失败的次数太多了,反驳也无力. 从放弃开发开始到现在,抑 ...
- bug_ _org.json.JSONException: End of input at character 0 of
10-16 18:28:39.549: W/System.err(4950): org.json.JSONException: End of input at character 0 of 10-16 ...
- .NET加密方法
SHA1加密: string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp);//字典排序 string tmpStr = str ...
- X.509证书生成
创建数字证书 用户对数字证书的认可决定于对证书颁发机构的信任,所以证书颁发机构决定了数字证书的可用范围.由于官方认可的数字证书颁发机构,比如VeriSign.Thawte(OpenSSL),具有普遍的 ...
- Openfire 编译插件
新增的插件打包方法: 3.打包插件 a.第一次打包需配置ant工具.在环境变量中, 添加 path=C:\Program Files\Java\jdk1.5.0_09\;D:\Program File ...