--在SQL中操纵读取ACCESS数据库
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:/test.mdb';'admin';''
,[表名])
SELECT *
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/test.mdb";Jet OLEDB:Database Password=数据库密码')...[表名]
/*--说明:
c:/test.mdb 是你要操作的ACCESS数据库名,如果不在SQL服务器上,需要设置文件所在的目录为完全共享,并将目录改为网络目录
表名 是你要操作和ACCESS数据库中的表名
数据库密码 如果你的ACCESS数据库有密码,就要用第二种方式
其他部分不需要做任何变动
如果是导入数据到现有表,对应的在: SELECT *
前加上: INSERT INTO 表
语句
如果是导入数据并生成新表,对应的在: SELECT *
后加上: INTO 表
语句
--*/
问题:无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
注:1.有一种说法是:把打开的EXCEL表关掉,就OK了,这种情况我试了不可行,这个问题与是否打开EXCEL表无关。2.可能以独占方式打开了EXCEL。原因确实是已经被别的用户以独占方式打开。
开始我用的是本地的数据库,所以没有出现这个问题,现在用了公司的服务器,所以出现了这个问题,它找不到我指定的文件。 文件夹只读属性设置还是不行。attrib -r -s d:/new . 用了之后没任何反应, 我又修改了注册表,再用这条命令,文件夹的只读属性没有去掉,倒是隐藏属性变成了灰色的不能修改。
在Windows XP和windows2003中,所有的文件夹都具有“只读”属性,取消只读属性后再次察看会发现依然是只读的,但是这不影响文件的使用。因为在Windows XP/2003中,文件夹属性中的“只读”不再代表原来的字面含义:对于文件系统来说,文件夹的只读属性没有实际的意义。即使一个文件夹是只读的,你仍然可以在这个文件夹里创建.修改或删除文件Windows XP/2003中文件夹“Read-Only”属性表示该文件夹是“定制”的。去掉“只读”属性会丢失该文件夹所有的“定制”信息,如图标.背景等。所以,Windows XP中不再提供用户界面来设置文件夹本身的只读属性。文件夹属性中“只读”的状态永远是第三态。当你在文件夹属性中选中或清除“只读”时,你设置的是这个目录下的文件的只读属性。
那我想在程序中向某个文件夹里面上传文件的时候,文件夹的这个属性也不影响吗?
用这种方法总是会出现问题:
INSERT INTO BBBloodBagDetail SELECT *
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="//192.168.100.103/new/CY090116105931-ey.mdb";
Jet OLEDB:Database Password=passadmin')...[CFXDXXB_WD]
这里用的是本地的Acess数据库,所以:
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "Microsoft Jet 数据库引擎打不开文件'//192.168.100.103/new/CY090116105931-ey.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
我一直想把本地数据通过SQL语句传到服务器上,可是始终没有解决这个问题。
迫不得已,只好把Acess数据库文件粘贴到服务器上,再用下面语句写到服务器数据库:
INSERT INTO BBBloodBagDetail SELECT *
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="//192.168.100.2/Fenin/CY090116105931-ey.mdb";
Jet OLEDB:Database Password=passadmin')...[CFXDXXB_WD]
暂且用这种方法解决问题吧。
从excel导入sqlserver
drop table #temptable
select * into #temptable FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=D:/winxp/桌面/Book1.xls;Extended Properties=Excel 8.0')...[sheet2$]
select * from #temptable
alter table #temptable alter column xmbm int
delete from #temptable where xmbm is null
insert into sq_xnhxm(xmbm,xmfl,xmmc) select xmbm,xmfl,xmmc from #temptable