在Delphi中如何创建和使用udl文件

 如何在Delphi中创建和使用udl文件:
方法一:
直接弹出UDL对话框:
use ADOConed; EditConnectionString(ADOQuery1);
方法二:
⑴、右键---新建---文本文档,重命名为 connSet.udl 。
⑵、双击打开 connSet.udl 按提示操作配置数据库,选择本地或远程数据库,配置好后退出。
⑶、使用Delphi 控件TADOConnection连接代码:
  在Form1的OnCreate事件如下

try ADOC.Connected := false; ADOC.ConnectionString := ''; ADOC.ConnectionString := 'FILE NAME='+ExtractFilePath(ParamStr(0))+'/connSet.udl'; ADOC.Provider := ExtractFilePath(ParamStr(0))+'/connSet.udl'; ADOC.Connected := true; except showmessage('连接失败,请重新配置connSet.udl文件'); EXIT; end;

  try         ADOC.Connected := false;         ADOC.ConnectionString := '';         ADOC.ConnectionString := 'FILE NAME='+ExtractFilePath(ParamStr(0))+'/connSet.udl';         ADOC.Provider := ExtractFilePath(ParamStr(0))+'/connSet.udl';         ADOC.Connected := true;     except         showmessage('连接失败,请重新配置connSet.udl文件');         EXIT;     end;
⑷、如果你要把应用程序分发到局域网中使用,数据库服务器没有改变,直接复制应用程序就可以了,不用再配置connSet.udl 文件。当在另外一个局域网中安装有不同名的数据库服务器时,右键用记事本打开connSet.udl 文件,会看到: 

[oledb] ; Everything after this line is an OLE DB initstring Provider=SQLOLEDB.1;Persist Security Info=False;User ID=jfgl_sa;Initial Catalog=jfgl;Data Source=192.168.0.117[oledb] ; Everything after this line is an OLE DB initstring Provider=SQLOLEDB.1;Persist Security Info=False;User ID=jfgl_sa;Initial Catalog=jfgl;Data Source=192.168.0.117
上面几行文件,这是新建connSet.udl 文件,并配置好数据库后自动生成的代码。我默认的登录用户为jfgl_sa,密码为空,数据库为jfgl,局域网数据库服务器名IP:192.168.0.117,你可按照自己的实际环境进行配置。
⑸、不同的局域网数据库服务器,你只要修改配置connSet.udl连接文件就可以了,不用修改Delphi代码,很方便哦。
⑹、故障处理:如果运行应用程序时,出现错误提示“无效的授权说明”,是因为前面我们已经新建了connSet.udl 连接,现在只要把Delphi控件TADOConnection的属性ConnectionString值删除为空,这是静态连接数据库的字符串值,所以删除ConnectionString值后,再重新编译就可以了。

转载于:https://www.cnblogs.com/xieyunc/archive/2009/04/27/2793709.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis事务的简单介绍

所谓事务应具有以下特效:原子性(Atomicity), 一致性(Consistency),隔离性(Isolation),持久性(Durability),简称ACID,但redis所提供的事务比较简单,它通过MULTI、EXEC、DISCARD和WATCH等命令实现…

Android Zip文件解压缩代码

在Android平台中如何实现Zip文件的解压缩功能呢? 因为Android内部已经集成了zlib库,对于英文和非密码的Zip文件解压缩还是比较简单的,下面Android123给大家一个解压缩zip的java代码,可以在Android上任何版本中使用,Unzip这个静态…

C语言指针(1)嵌入式linux

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编…

最全android Demo

1、BeautifulRefreshLayout-漂亮的美食下拉刷新https://github.com/android-cjj/BeautifulRefreshLayout/tree/BeautifulRefreshForFood2、Material Design-动画风格的选项卡tab切换功能https://github.com/neokree/MaterialTabs3、TwinklingRefreshLayout-支持下拉刷新和上拉加…

网站优化之Ajax优化及相关工具

web2.0大量的ajax的使用,提高了ui交互的效率,但是过度的滥用会带来不少的问题。 ajax使用注意事项: 1 尽量避免使用同步ajax调用。在一些登录的场合常常使用同步调用服务器的登录接口。 同步调用,需要将页面上的所有元素给锁定住&…

MessageQueue Message Looper Handler的解释说明

总结4个关键概念 1、MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。 创建一个线程的时候,并不会自动创建其MessageQueue。通常使用一个…

C语言中的内存分配

在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。 第1节主要介绍内存管理基本概念,重点介绍C程序中内存的…

强化学习(十七) 基于模型的强化学习与Dyna算法框架

在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Based RL),以及基于模型的强化学习算法框架Dyna。 本篇主要参考了UCL强化学习课…

js如何读取客户端Excel文件

详细见 http://www.oejia.net/blog/2012/08/07/Js_read_xls.html 原理是利用了IE关于Excel的ActiveX插件,所以此功能只支持IE系列浏览器 var tempStr "";var filePath document.all.upfile.value;var oXL new ActiveXObject("Excel.application&qu…

Redis之简单动态字符串sds

转载:https://segmentfault.com/a/1190000012262739 redis在处理字符串的时候没有直接使用以\0结尾的C语言字符串,而是封装了一下C语言字符串并命名为sds(simple dynamic string),在sds.h文件里我们可以看到如下类型定义: typede…

同时使用有线和无线

访问无线的70网段,172.20.70.104 本地无线IP route add 172.20.70.0 mask 255.255.255.0 172.20.70.104 metric 1 访问无线的50网段,172.20.70.104 本地无线IP route add 172.20.50.0 mask 255.255.255.0 172.20.70.104 metric 2 转载于:https://www.cnb…

假期第一次编程总结(改二)

7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2&#xff1…

high-speed A/D performance metrics and Amplifie...

2019独角兽企业重金招聘Python工程师标准>>> High-Speed A/D performance metrics 在高速情况下,主要考虑信号参数的频率范围、失真和噪声。During system definition,setting time 、 acquisition time、static precision-related&#xff0…

Redis之整数集合intset

intset是Redis集合的底层实现之一,当存储整数集合并且数据量较小的情况下Redis会使用intset作为set的底层实现。当数据量较大或者集合元素为字符串时则会使用dict实现set。 intset将整数元素按顺序存储在数组里,并通过二分法降低查找元素的时间复杂度。数…

场景编辑器的草案

Jojoushi场景编辑器 整个脚本的演示和编辑以点击事件为基本的单元,一次点击事件的生命期是:玩家点击一次鼠标到下一次有效的点击鼠标之间的这段时间。 1.显示场景 显示模型存在的场景,可以通过上下左右案件在场景中漫游。 2&…

c++学习书籍推荐《超越C++标准库:Boost库导论》下载

《超越C标准库Boost库导论》不仅介绍了Boost库的功能、使用方法及注意事项,而且还深入讨论了Boost库的设计理念、解决问题的思想和技巧以及待处理的问题。因此,本书是一本了解Boost库并探索其机理的实用手册。 百度云及其他网盘下载地址:点我…

批量替换 MySQL 指定字段中的字符串

批量替换 MySQL 指定字段中的字符串 批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多&#x…

WebCombo

原文来自方案网 http://www.fanganwang.com/Product-detail-item-1162.html,欢迎转载。 关键字: WebCombo.NET 是一款基于AJAX技术,处于行业领先地位的Combo box控件。它提供众多高级的数据输入功能及其独特的技术。通过其内置的数据过滤功能…

Redis之压缩列表ziplist

Redis是基于内存的nosql,有些场景下为了节省内存redis会用“时间”换“空间”。 ziplist就是很典型的例子。 ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是qu…

动态链表与静态链表

一. 静态链表 在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址. #define MAXSIZE 100; typedef struct{ ElemType data; in…