ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10822|回复: 23

[分享] ADO技术常用连接字符串大全

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-6 22:45 | 显示全部楼层 |阅读模式

花了一些时间整理了在ADO中常用的连接字符串,方便查阅和比较。

并对其中的参数做了必要说明,期望让其能让多数人能看懂。

本帖内容涵盖了连接到Access,Excel,TXT,SQL Server,MySQL的连接字符串。

--------------------------------------------------------------------------------------------

1.Access
Access 2003 Access 2007 Access 2010 Access 2013


本地文件:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;

--------------------------------------------------------------------------------------------

网络文件(IP地址前为双反斜杠,例如:\\192.168.0.1\文件夹\文件.accdb):

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\server\share\folder\myAccessFile.accdb;

--------------------------------------------------------------------------------------------

带密码:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Jet OLEDB:Database Password=MyDbPassword;


--------------------------------------------------------------------------------------------

2.Excel
Excel 2003 Excel 2007 Excel 2010 Excel 2013

Excel 12.0 Xml中的后缀XML、MACRO可以省略

Xlsx文件

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES";

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

--------------------------------------------------------------------------------------------

Xlsb文件

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myBinaryExcel2007file.xlsb;
Extended Properties="Excel 12.0;HDR=YES";

--------------------------------------------------------------------------------------------

Xlsm文件

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm;
Extended Properties="Excel 12.0 Macro;HDR=YES";

--------------------------------------------------------------------------------------------

Xls文件(Excel 97-2003)

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;
Extended Properties="Excel 8.0;HDR=YES";

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;
Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";


参数说明

HDR=Yes:

这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。默认值YES

Excel 8.0:

对于Excel 97以上、2003及以下版本都用Excel 8.0,Excel 2007以上用Excel 12.0

IMEX(IMport EXport mode):

IMEX是用来告诉驱动程序使用Excel文件的模式,其值有0、1、2三种,分别代表导出、导入、混合模式。当我

们设置IMEX=1时将强制混合数据(数字、日期、字符串等)转换为文本。

但仅仅这种设置并不可靠,IMEX=1只确保在某列前8行数据至少有一个是文本项的时候才起作用,它只是把查

找前8行数据中数据类型占优选择的行为作了略微的改变。例如某列前8行数据全为纯数字,那么它仍然以数字

类型作为该列的数据类型,随后行里的含有文本的数据仍然变空。另一个改进的措施是IMEX=1与注册表值

TypeGuessRows配合使用,TypeGuessRows 值决定了ISAM 驱动程序从前几条数据采样确定数据类型,默认为“8

”。

可以通过修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的该注册表值来更改采

样行数,设置为0时表示采样所有行。

  IMEX 三种模式:

  当 IMEX=0 时为“汇出模式”(Export mode),该模式开启的Excel档案只能用来做“写入”用途。
  当 IMEX=1 时为“汇入模式”(Import mode),该模式开启的Excel档案只能用来做“读取”用途。
  当 IMEX=2 时为“连結模式”(Linked mode),该模式开启的Excel档案支持“读取”和“写入”用途。


选择数据区域

"SELECT [列名一], [列名二] FROM [表一$]",Excel工作表名后面跟着一个“$”,并用[]括号括起来;如果

HDR=NO,也就是工作表没有标题,用F1,F2...引用相应的数据列。

"SELECT * FROM [Sheet1$a5:d10]",选择A5到D10的数据区域。

数据区域也可以用Excel中定义的名称表示,假如有个工作簿作用范围的数据区名称datarange,查询语句为:

"SELECT * FROM [datarange]"

如果数据区名称作用范围是工作表,需要加上工作表名:"SELECT * FROM [sheet1$datarange]"

有密保的工作簿

如果Excel工作簿受密码保护,即使通过提供正确的密码与连接字符串,也无法打开它来进行数据访问。如果您

尝试打开,将收到以下错误信息:“无法解密文件”。

--------------------------------------------------------------------------------------------

3.文本文件

分隔符列

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Delimited";

--------------------------------------------------------------------------------------------

定长列

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Fixed";

--------------------------------------------------------------------------------------------

FMT(Format) - 指定格式化类型。可以有如下值:

Delimited        文件被当做一个逗号分隔文件。逗号是默认分隔符。
Delimited(x)        文件被当做 'x’作为分隔符的文件
TabDelimited        文件被当做制表符分隔的文件
FixedLength        通过指定字段的固定长度来读取数据。

在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\可修改:
值为:"Format" = "TabDelimited"或"Format" = "Delimited(;)"
如不指定,则为:"Format"="Delimited( )"

--------------------------------------------------------------------------------------------

4.SQL Server

标准安全模式(Standard Security):

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
User Id=myUsername;Password=myPassword;

--------------------------------------------------------------------------------------------

信任连接(Trusted connection):

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
Integrated Security=SSPI;

参数说明:

Integrated Security(集成验证)为True时,连接语句中的UserID, Password是不起作用的,即采用windows身

份验证模式。只有设置为False或省略该项的时候,才按照UserID, Password来连接。Integrated Security可

以设置为: True, false, yes, no ,还可以设置为:SSPI ,相当于True.如果SQL SERVER服务器不支持这种方

式登录时,就会出错,你此时应使用SQL SERVER的用户名和密码进行登录,如:

"Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=数据库名;
Data Source=192.168.0.1;User ID=sa;Password=密码"

integrated security=true表示以 Windows 身份验证的方式连接SQL。这种模式只允许SQL安装在本机上才能成

功登录。如果是远程登录模式,那么就应该使用用户名,密码的方式连接

Persist Security Info:是保存安全信息(密码)的,最好设置为false


--------------------------------------------------------------------------------------------

禁用连接池(Disable connection pooling):

Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
User ID=myUsername;Password=myPassword;OLE DB Services=-2;

--------------------------------------------------------------------------------------------

提示用户名和密码(Prompt for username and password)

oConn.Provider = "sqloledb"
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Data Source=myServerAddress;Initial Catalog=myDataBase;"


--------------------------------------------------------------------------------------------

通过IP地址连接(Connect via an IP address)


Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

"Network Library=DBMSSOCN"声明OLE DB使用TCP/IP替代Named  Pipes命名管道连接方式,
不加的话就使用MSSQL服务器端默认连接方式,不受程序控制。
支持的值包括:

                   dbnmpntw(命名管道)
                   dbmsrpcn(多协议,Windows RPC)
                   dbmsadsn (Apple Talk)
                   dbmsgnet (VIA)
                   dbmslpcn(共享内存)
                   dbmsspxn (IPX/SPX)
                   dbmssocn (TCP/IP)  
                   dbmsvinn (Banyan Vines)

--------------------------------------------------------------------------------------------

5.MySQL

Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;



MSSQL和MySQL使用的提供者驱动不同时,连接字符串都不会相同,不再列举。可在该网址查询:

https://www.connectionstrings.com/,基本上涵盖了所有类型的数据库连接字符串了!

评分

17

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-5-7 07:49 | 显示全部楼层
挺详细的,收藏了。。

TA的精华主题

TA的得分主题

发表于 2018-5-7 09:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-7 18:44 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-8 06:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-8 07:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-8 07:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有心人,赞一个。

TA的精华主题

TA的得分主题

发表于 2018-5-8 08:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-5-8 09:19 | 显示全部楼层
楼主太有心了,正要讨教:我用VBA写的Excel连接server数据库、用VB写的客户端连接server数据库在公司局域网内完全应用正常,当然IP用的是内网IP(总机服务器IP)。但是客户端在外网总是不能运行,IP换了公司外网IP的。请楼主赐教为谢!

TA的精华主题

TA的得分主题

发表于 2018-5-8 09:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
拜大神_刺猬.gif
楼主威武。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 03:47 , Processed in 0.042757 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表