动态连接数据库及动态建立ODBC,DSN(ZT)
在ODBC数据源里配置数据库,通过这种方式,应用程序的编写变的简单。只需要在应用程序里面指定已经配置好的数据源就可以连接,访问数据库。但是,这种方式也有一定的局限性,需要手工的在ODBC数据源里面配置。需要教会程序的使用者如何去配置,而且,如果一不小心更改了ODBC数据源的配置(也许是无意的)。就会造成连接数据库失败。这时候,程序的使用人员也许会一筹莫展,束手无策。
在form或Data Modules上放置Tdatabase控件,属性设置如下:
object dbWork: TDatabase
DatabaseName = 'work'
LoginPrompt = False
SessionName = 'Default'
TransIsolation = tiDirtyRead
Left = 32
Top = 16
End
1)Paradox数据库的连接
dbWork.Connected := False
dbWork.DriverName :='STANDARD';
dbWork.Params.Values['PATH'] := ‘d:/data’; //填写数据库路径
dbWork.Connected := True;
2)Informix数据库的连接(BDE连接)
dbWork.Connected := False
dbWork.DriverName := 'informix';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘sysmaster;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True;
3) SQL Server数据库的连接(与informix一样)
dbWork.Connected := False
dbWork.DriverName := 'MSSQL';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True;
4)Postgrd SQL数据库的连接(ODBC连接)
dbWork.Connected := False
dbWork.DriverName := 'PostgreSQL';
dbWork.Params.Values['ODBC DSN'] := 'PgSQL';/ /数据源名称
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True;
PS:ODBC连接时,请保证odbc驱动安装正确;并且有设置odbc;
附自动设置odbc代码:
// sDriName 驱动程序名 (PostgreSQL)
// sDsnName 数据源名
function CreateDSN(sDriName,sDsnName:string): boolean;
var
regTmp: TRegistry;
sTmp: String;
begin
Result:= True;
regTmp:= TRegistry.Create;
try
with regTmp do
begin
RootKey:= HKEY_LOCAL_MACHINE;
if openkey('software/ODBC/ODBCINST.INI/'+sDriName,false) then
begin
sTmp:= ReadString('driver');
if sTmp = '' then
begin
result:= false;
exit;
end;
end
else
begin
result:= false;
exit;
end;
CloseKey;
RootKey:= HKEY_CURRENT_USER;
if openkey('software/ODBC/ODBC.INI/ODBC Data Sources',True) then
begin
if not ValueExists(sDsnName) then
WriteString(sDsnName,sDriName);
end
else
begin
result:= false;
exit;
end;
CloseKey;
if openkey('software/ODBC/ODBC.INI/'+sDsnName,True) then
begin
if not ValueExists('ServerName') then
writeString('ServerName','');
if not ValueExists('DataBase') then
writeString('DataBase','');
if not ValueExists('UserName') then
writeString('UserName','');
if not ValueExists('Password') then
writeString('Password','');
if not ValueExists('Description') then
writeString('Description','DoWhat Create');
if not ValueExists('driver') then
writeString('driver',sTmp);
end
else
begin
result:= false;
exit;
end;
end;
finally
regTmp.CloseKey;
end;
end;
动态连接数据库及动态建立ODBC,DSN(ZT)相关推荐
- ODBC连接数据库使用动态密码
ODBC连接数据库使用动态密码 | 火苗999℃的博客 先修改使用到的记录集的GetDefaultConnect()函数为: CString CTask_Info::GetDefaultConnect ...
- Django系列教程:三、动态视图和动态Url
注明:python版本为3.3.1.Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨. 前一章我们简略的讲解了下Django的视图和Url的配置,那么 ...
- hive动态分区shell_Hive动态分区 参数配置及语法
Hive本身是不支持动态分区的.. 但动态分区是真的方便啊..不然手动维护要累死..按日期甚至小时来分区时动辄就好几千上万的分区..手动到哪一年去..? 想要用动态分区要先做一些设置来修改默认的配置. ...
- SPSS Modeler使用之与数据库建立ODBC连接
SPSS Modeler的源文件包含sav.txt.xlsx等,这些文件都可以直接导入.但是数据库SQL文件需要Modeler与相应数据库建立ODBC连接. 首先,在控制面板中打开ODBC数据源 点击 ...
- 如何建立ODBC数据源
建立ODBC数据源对于在使用ASP对数据库进行操作时是必要的,虽然他很简单,却是必须的一步.现在我把他记录下来,防止以后我把这部分东西忘掉,也和广大初学者一起分享. 首先进入控制面版的性能和维护部分, ...
- paip.odbc DSN的存储与读取
paip.odbc DSN的存储与读取 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/atti ...
- 系统dsn oracle,linux平台配置oracle odbc dsn的方法.docx
linux平台配置oracle odbc dsn的方法.docx LINUX平台配置ORACLEODBCDSN的方法1DSN配置方法ORACLE11编辑配置文件一.OSRHEL5X86(ORACLED ...
- python可视化脉搏和血氧数据并通过阈值动态调整、动态可视化异常值
python可视化脉搏和血氧数据并通过阈值动态调整.动态可视化异常值的情况 # 导入基础库和包: import sys import os import pandas as pd import num ...
- python是高级动态语言_Python动态语言之魅力揭秘
之前的文章跟大家讲解了鸭子类型,其实鸭子类型是编程语言中动态类型语言中的一种设计风格.今天跟大家一起谈谈动态语言的魅力. 根据维基百科,动态编程语言是这样子定义的:动态编程语言是高级编程语言的一个类别 ...
最新文章
- 清华大学人工智能研究院成立基础理论研究中心
- 第三方开源项目名称_如何为您的开源项目选择品牌名称
- 90后程序员健康现状:掉头发、油腻、腰椎间盘突出……
- 【linux】为什么 mmap 比系统调用快
- ffmpeg-20160803-bin.7z
- 精通反激电源变压器及电路设计-自己的笔记
- Mybatis源码阅读之一——工厂模式与SqlSessionFactory
- Electron实现Zbar开源工具解码一维码和二维码
- Photoshop cc 2019 破解教程
- QQ动态表情包如何制作 堪比沙漠骆驼gif
- oracle10G 异构方式迁移表空间之二
- SpringBoot框架的基本结构
- 解读手机相机的各个参数(长曝光)
- 电子签名合同的有效期是多久
- cnPuTTY CAC 0.78.0.1—PuTTY CAC 0.78中文版本简单说明~~
- 武汉移动137和武汉电信189手机业务比较
- 在互联网大厂实习之后,我明白了这些事
- svn 文件前前面的标识符
- google chrome 谷歌浏览器 清除 清空 缓存cookie 快捷键
- css实现虚线表格样式
热门文章
- java go md5_Go语言中三种不同md5计算方式的性能比较
- td外边加div为啥不隐藏_那些不常见,但却非常实用的 css 属性
- Linux+Apache+PHP+MySQL服务器环境(CentOS篇)
- IHttpModule与IHttpHandler的区别整理
- Linux系统下的多线程编程入门
- java 索引实现,Java创建ES索引实现
- mac使用eclipse创建java_【Java】Mac上使用Eclipse创建Java项目的一般步骤
- Mysql练习_MySQL练习(一)
- mysql数据库调优知识复习
- 转载linux ip命令新手入门