delphi 连接各中数据库方法
---恢复内容开始---
数据库连接字符串的拼写规则的决定条件:
• 连接的数据库的类型:SQL Server,Oracle,MySQL,Acess,MogoDB,Visual FoxPro(dBASE),Excel
• 数据库驱动器:ODBC,OLE DB
• 连接的模式:标准连接(Standard Security),信任连接(Trusted connection)
• 网络协议:TCP/IP,Named Pipes
名称 网络协议库
dbnmpntw Win32 Named Pipes
dbmssocn Win32 Winsock TCP/IP
dbmsspxn Win32 SPX/IPX
dbmsvinn Win32 Banyan Vines
dbmsrpcn Win32 Multi-Protocol (Windows RPC)
连接参数表
名称 描述
Application Name 应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者
Data Source||Server||Address||Addr||Network Address 要连接的SQL Server实例的名字或者网络地址
Initial Catalog||Database 数据库名
Integrated Security||Trusted_Connection 连接是否为信任连接
Uid或User ID SQL Server登录用户
Password或Pwd SQL Server帐户登录口令
Connect Timeout或者Connection Timeout 在中止连接请求,产生错误之前等待服务器连接的时间(以秒为单位)
Pooling 从合适的连接池中取出SQLConnection对象,或者必要时创建SQLConnection对象并把它增加到合适的连接池中
Max Pool Size 连接池中允许的最大连接数
Min Pool Size 连接池中允许的最小连接数
AttachDBFilename或者extended properties或者Initial File Name 主要文件的名字,包括相关联数据库的全路径
Connection Lifetime 当一个连接返回到连接池,当前时间与连接创建时间的差值,如果时间段超过了指定的连接生存时间,此连接就被破坏。它用于聚集设置中在运行服务器和准备上线的服务器之间强制负载平衡。
Connection Reset 当连接从连接池移走时决定是否重置数据库连接。当设置为''false''时用于避免获得连接时的额外服务器往复代价。
Current Language 语言记录名称
Enlist 连接池自动列出创建线程的当前事务上下文中的连接
Network Library或Net ''dbmssocn'' 网络库用于建立与一个 SQL Server实例的连接。值包括dbnmpntw (命名管道), dbmsrpcn (多协议), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmsipcn (共享内存) 和 dbmsspxn (IPX/SPX), 和 dbmssocn (TCP/IP). 所连接的系统必须安装相应的动态链接库。如果你没有指定网络,当你使用一个局部的服务器 (例如, "." 或者 "(local)"),将使用共享内存
Packet Size SQL Server的一个实例通讯的网络包字节大小
Workstation ID 连接到SQL Server的工作站名称
Persist Security Info 当连接已经打开或者一直处于打开状态时,敏感性的安全信息 (如口令)不会返回作为连接的一部分信息。
Pooling ''true'' 为真时,从合适的连接池中取出SQLConnection对象,或者必要时创建SQLConnection对象并把它增加到合适的连接池中
连接参数
一、 Sql Server
· ODBC
o 标准连接(Standard Security):
1)当服务器为本地时Server可以使用(local):"Driver={SQLServer};Server=(local);Database=pubs;Uid=sa;Pwd=123456"
2)当连接远程服务器时,需指定地址、端口号和网络库:"Driver={SQL Server};Server=180.166.105.142,2433;Database=pubs;Uid=sa;Pwd=123456"
o 信任连接(Trusted connection): (Microsoft Windows NT 集成了安全性)
"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes"或者"Driver={SQL Server};Server=Aron1;Database=pubs; Uid=;Pwd="
· OLE DB, OleDbConnection (.NET)
o 标准连接(Standard Security):
"Provider=sqloledb;Data Source=192.168.1.100,2433;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=M8BGRdafaRUpkYZ1OqyS"
o 信任连接(Trusted connection):
"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI"
(如果连接一个具体的已命名SQLServer实例,使用Data Source=Servere Name\Instance Name;但仅适用于 SQLServer2000)例如:”Provider=sqloledb;Data Source=MyServerName\MyInstanceName;Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;”
o 通过IP地址连接:
"Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd"
(DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口号(缺省为1433))
二、Access
· ODBC
o 标准连接(Standard Security):
"Driver={Microsoft Access Driver (.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"
o 独占方式(Exclusive):
"Driver={Microsoft Access Driver (.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="
· OLE DB, OleDbConnection (.NET)
o 标准连接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"
o 组连接 (系统数据库)
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw;","admin", ""
o 带口令的连接:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;","admin", ""
三、Oracle
· ODBC
"Driver={Microsoft ODBC for oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
· OLE DB, OleDbConnection (.NET)
o 标准连接(Standard Security):
Microsoft的格式
“Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
Oracle的格式
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
注意:"Data Source=" 必须根据相应的命名方法设置为Net8名称。例如对于局部命名,它是tnsnames.ora中的别名,对于Oracle命名,它是Net8网络服务名
o 信任连接(Trusted Connection):
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"或者设置user ID为 "/"
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"
· oracleConnection (.NET)
o 标准连接:
"Data Source=Oracle8i;Integrated Security=yes";(这只对Oracle 8i release 3或更高版本有效)
o MS Data Shape:
"Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"
四、 MySQL
· ODBC
o 本地数据库:
"Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;" (Sever参数也可以使用localhost作为其值)
o 远程数据库:
"Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=my-database;Uid=username;Pwd=password;"
Option值 取值的含义
1 客户端不能处理MyODBC返回一列真实宽度的情况
2 客户端不能处理MySQL返回影响的行的真实值的情况如果设置此标志,MySQL返回’found rows’。 MySQL 3.21.14或更新版才能生效
4 在c:\myodbc.log中生成一个调试日志。这与在AUTOEXEC.BAT''中的设置MYSQL_DEBUG=d:t:O,c::\myodbc.log相同 8 对于结果和参数不设置任何包限制 16 不使驱动器弹出问题 32 使用或去除动态游标支持。这在MyODBC 2.50中是不允许的 64 在''database.table.column''中忽略数据库名字的使用 128 强制使用ODBC管理器游标 256 去除扩展取值(fetch)的使用 512 充满char字段满长度 1024 SQLDescribeCol()函数返回完全满足条件的列名 2048 使用压缩的服务器/客户端协议 4096 告诉服务器在函数后和''(''前忽略空格 (PowerBuilder需要)。这将产生所有函数名关键词 8192 使用命名管道连接运行在NT上的Mysqld服务器 16384 将LONGLONG列改为INTl列(有些应用不能处理LONGLONG列) 32768 从SQLTables中返回’user’作为Table_qualifier和Table_owner 66536 从客户端读参数,从my.cnf''读ODBC群
131072 增加一些额外的安全性检查
如果你需要许多选项,你应该把以上标志相加。
· OLE DB, OleDbConnection (.NET)
o 标准连接:
"Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;"
Data Source是MySQL数据库的名字,也可以使用server=localhost;DB=test
· MySqlConnection (.NET)
o eInfoDesigns.dbProvider:
"Data Source=server;Database=mydb;User ID=username;Password=pwd;Command Logging=false"
只适用于 eInfoDesigns dbProvider, 附加到 .NET
五、Interbase
· ODBC, Easysoft
o 本地计算机:
"Driver={Easysoft IB6 ODBC};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"
o 远程计算机:
"Driver={Easysoft IB6 ODBC};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"
· ODBC, Intersolv
o 本地计算机:
"Driver={INTERSOLV InterBase ODBC Driver (.gdb)};Server=localhost;Database=localhost:C:\mydatabase.gdb;Uid=username;Pwd=password"
o 远程计算机:
"Driver={INTERSOLV InterBase ODBC Driver (.gdb)};Server=ComputerName;Database=ComputerName:C:\mydatabase.gdb;Uid=username;Pwd=password"
这个驱动器现在由 DataDirect Technologies来提供 (以前由Intersolv提供)
六、 OLE DB, SIBPROvider
o 标准连接:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey"
o 指定字符集:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;character set=ISO8859_1"
o 指定角色:
"provider=sibprovider;location=localhost:;data source=c:\databases\gdbs\mygdb.gdb;user id=SYSDBA;password=masterkey;role=DIGITADORES"
· 需要了解更多请链接到Interbase的如下Borland开发者网络文章http://community.borland.com/article/0,1410,27152,00.html
七、IBM DB2
· OLE DB, OleDbConnection (.NET) from ms
o TCP/IP:
"Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=XXX.XXX.XXX.XXX;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"
o APPC:
"Provider=DB2OLEDB;APPC Local LU Alias=MyAlias;APPC Remote LU Alias=MyRemote;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=MyUser;Password=MyPW"
AS400
· ODBC
" Driver={Client Access ODBC Driver (32-bit)};System=myAS400;Uid=myUsername;Pwd=myPassword"
· OLE DB, OleDbConnection (.NET)
"Provider=IBMDA400;Data source=myAS400;User Id=myUsername;Password=myPassword;"
八、Sybase
· ODBC
o Sybase System 12 (或 12.5) Enterprise Open Client标准连接:
"Driver={SYBASE ASE ODBC Driver};Srvr=Aron1;Uid=username;Pwd=password"
o Sybase System 11标准连接:
"Driver={SYBASE SYSTEM 11};Srvr=Aron1;Uid=username;Pwd=password;"
o Intersolv 3.10:
"Driver={INTERSOLV 3.10 32-BIT Sybase};Srvr=Aron1;Uid=username;Pwd=password;"
o Sybase SQL Anywhere (以前为Watcom SQL ODBC driver):
"ODBC; Driver=Sybase SQL Anywhere 5.0; DefaultDir=c:\dbfolder;Dbf=c:\mydatabase.db;Uid=username;Pwd=password;Dsn="""""
注意: 对于在末尾紧跟着DSN 参数被引用的双引号(VB语法), 你必须改变符合你所使用的语言所指定的引用符号语法。DSN参数为空实际上非常重要,如果不包括的话将导致7778错误。
· OLE DB
o Adaptive Server Anywhere (ASA):
"Provider=ASAProv;Data source=myASA"
o Adaptive Server Enterprise (ASE)(带数据源为.IDS文件):
"Provider=Sybase ASE OLE DB Provider; Data source=myASE"
注意你必须使用数据管理器来创建一个数据源.IDS文件.这些.IDS 文件类似于ODBC DSNs.
九、 Visual FoxPro(dBASE)
· ODBC
o dBASE:
" Driver={Microsoft dBASE Driver (.dbf)}; DriverID=277;Dbq=c:\DatabasePath"
注意在书写sql语句时必须指定文件名(如“Select Name, Address From Clients.dbf”).
o Visual Foxpro(有数据库容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBC;SourceDB=C:\DatabasePath\MyDatabase.dbc;Exclusive=No "
o Visual Foxpro(无数据库容器):
" Driver={Microsoft Visual Foxpro Driver};UID=; SourceType=DBF;SourceDB=C:\DatabasePath\MyDatabase.dbc;Exclusive=No"
· OLE DB, OleDbConnection (.NET)
o 标准连接:
"Provider=vfpoledb;Data Source=C:\DatabasePath\MyDatabase.dbc;"
十、Excel
· ODBC
o 标准连接(Standard Security):
" Driver={Microsoft Excel Driver (.xls)};DriverId=790; Dbq =C:\DatabasePath\DBSpreadSheet.xls;DefaultDir=c:\databasepath;"
· OLE DB Provider for Microsoft Jet
o 标准连接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DatabasePath\DBSpreadSheet.xls;Extended Properties=""Excel 8.0;HDR=Yes;"";"
注意:如果"HDR=Yes",那么提供者不会在记录集中包括选择的第一行,如果,那么提供者将在记录集中包括单元范围(或已经命名范围)的第一行
十一、Text
· ODBC
o 标准连接(Standard Security):
" Driver={Microsoft Text Driver (.txt; .csv)}; Dbq=C:\DatabasePath\;Extensions=asc,csv,tab,txt;"
如果文本文件使用tab作为分隔符,你必须创建schema.ini文件,你必须在连接串中使用Format=TabDelimited选项。
注意:你必须在sql语句中指定文件名(例如"Select Name, Address From Clients.csv")
· OLE DB Provider for Microsoft Jet
o 标准连接(Standard Security):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DatabasePath\;Extended Properties=""text;"HDR=Yes;FMT=Delimited;"";"
注意在书写sql语句时必须指定文件名(如“Select Name, Address From Clients.txt”).
ODBC DSN
" DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword;"
OLE DB Provider for ODBC Databases
使用DSN进行连接:
"Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=Yes;Data Source=MyDSN;catalog=MyDatabase;"
OLE DB Provider for OLAP
"Provider=MSOLAP;Data Source=MyOLAPServerName;Initial Catalog=MyOLAPDatabaseName;"
---恢复内容结束---
delphi 连接各中数据库方法的更多相关文章
- VS 2015连接SQL server数据库方法
vs新建一个Windows窗口应用程序,界面布局如下: Form1.cs中代码如下: using System; using System.Collections.Generic; using Sys ...
- .Net Webconfig连接字符串中数据库实例名带'\'的问题
获取前: 获取后: 导致sa登录失败的问题 string strCon = "workstation id=localhost;packet size=4096;user id=" ...
- delphi连接sql server数据库,并根据sql语句查询出数据显示--初级
需要用到四个组件,分别为: 1.ADOConnection1 设置Connectionstring属性(连接串),loginPrompt属性控制是否连接记住了密码: 2.ADOQuery1 设置Con ...
- 使用navicat连接linux服务器数据库方法
主机名用localhost 要使用SSH连接
- 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作
总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...
- R语言-连接MySQL数据库方法
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] R语言连接数据库常用的方法有2种: 1.使用R数据库接口 连接MySQL,使用RMySQL包,使用前RMySQL包要先安 ...
- 覆盖Django mysql model中save方法时碰到的一个数据库更新延迟问题
最近有一个需求,通过django的admin后台,可以人工配置5张表的数据,这些数据进行一些业务规则处理后会统一成一份数据缓存在一个cache之中供服务端业务访问,因而任何一张表的数据更新(增.删.改 ...
- MySQL数据库无法使用+号连接字符串的处理方法
转自:http://www.maomao365.com/?p=10003 摘要: 下文讲述MySQL数据库,字符串连接的方法分享,如下所示:实现思路: 使用concat函数对两个字符串进行连接在MyS ...
- django同一个项目中连接多个数据库
一.场景与思路 同一个项目中需要连接多个数据库. 二.代码 代码中主要是三个部分,settings.models以及自己写的一个类. 1.自己写的文件:database_app_router.py ...
随机推荐
- JavaScript复制内容到剪贴板
移动端 需要复制内容到剪贴板时, clipborad.js 不支持ios微信版浏览器,可配合使用 execCommand 使其兼容, 完成一键复制淘口令的功能. 注意使用clipborad.js时,i ...
- CUDA-F-1-0-并行计算与计算机架构
Abstract: 本文从总体上给出了CUDA编程的Big picture,后续所有的文章都在本文的基础上详细展开. Keywords: 并行计算,串行编程,并行编程,计算机架构,并行性,异构架构,C ...
- 排序学习(learning to rank)中的ranknet pytorch简单实现
一.理论部分 理论部分网上有许多,自己也简单的整理了一份,这几天会贴在这里,先把代码贴出,后续会优化一些写法,这里将训练数据写成dataset,dataloader样式. 排序学习所需的训练样本格式如 ...
- Oracle实现分页,每页有多少条记录数
分页一直都是关系数据库的热门,在数据量非常多的情况下,需要根据分页展示,每页展示多少条记录,以此减轻数据的压力; 1实现原理,根据rownum取记录数,根据公式(页数-1)*每页想要展示的记录数 AN ...
- template模板循环嵌套循环
template嵌套循环写法:在第一次循环里面需要循环的地方再写个循环,把要循环的数据对象改为第一层的循环对象别名 //template模板循环嵌套循环 <script id="ban ...
- Linux top常用操作
是否显示task和cpu行:t 是否显示内存信息行:m 切换信息区域单位:E 切换任务区域单位:e 显示各个CPU单独的数据: 按某列排序: M(内存) P(CPU) N(PID) T(TIME+) ...
- HDU 5794 A Simple Chess ——(Lucas + 容斥)
网上找了很多人的博客,都看不太懂,还是大力学长的方法好. 要说明的一点是,因为是比较大的数字的组合数再加上mod比较小,因此用Lucas定理求组合数. 代码如下(有注释): #include < ...
- centos 链接错误解决方法
执行除cd sln以外任何指令都报错,解决方法:sln /usr/lib64/ld-2.17.so /usr/lib64/ld-linux-x86-64.so.2 LD_PRELOAD=/lib64/ ...
- 解决Maven打包提示:读取C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar时出错; invalid LOC header (bad signature)
1.打包情况 虽然提示读取jar包出错,但是还是能打包成功,在执行打的jar包时会报错,说找不到相关的类. 2.解决方案 从提示的路径可以找到对应的jar包,但为什么会读取错误呢?尝试着双击打开log ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...