在SQL查询分析器中将数据库的表数据插入到已知路径的ACCESS数据库!急急急!

时间:2021-10-18 07:10:51
或者是在ACCESS中将已知登陆用户及密码的SQL数据库导入到本地的ACCESS库的表中。

15 个解决方案

#1


如果在同一台机上将SQL数据库表数据插入到ACCESS中这问题已经解决了。现在如果应用程序是网络版时需从IP地址所对应的SQL数据库中取数插入到ACCESS库的表中。请大家帮我想想办法,或者给点思路也行。谢谢,急。

#2


--假设本地也有安装SQL
--创建链接服务器
exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--导入
insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'C:\Test.mdb';'admin';'',table2) (col1,col2)
select col1,col2 from srv_lnk.库名.dbo.表名

#3


--如果只是临时访问,可以直接用openrowset
--导入示例
insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'C:\Test.mdb';'admin';'',table2) (col1,col2) from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
select (col1,col2) from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

#4


gc_ding(施主,给个妞泡好么)  果然高手

#5


gc_ding(施主,给个妞泡好么) ,我客户端装的是ACCESS。程序要求客户端向SQL数据库服务器取数插入至客户端的ACCESS库中。ACCESS不支持openrowset()函数的。你的语句是从服务器中取数写入到服务的C:\Test.mdb文件中,而不是客户端的MDB数据库。如果以将'C:\Test.mdb'更改为:
'\\192.168.0.22\data\Test.mdb'则插入数据时,会提示没有打开权限。因为操作系统设置了登陆用户密码。

#6


唉,怎么没人回答了呢?

#7


设置写权限的共享目录,在运行中执行一次\\192.168.0.22,输入密码后就可以通过以上方式导入了

#8


如上代码需放在应用应用程序中执行的。如果这样太烦索了,难道只能这样的吗?

#9


--执行SQL在数据库服务器上创建映射 z:
exec master..xp_cmdshell 'net use z: \\server\test 密码 /user:administrator'
--删除数据库服务器上的映射 z:
exec master..xp_cmdshell 'net use z: /delete'

#10


按照gc_ding(施主,给个妞泡好么) 的方法可以取到数据了,但是在服务器端如何得到客户端的操作系统登录密码呢?

#11


mark,帮顶,现学习

#12


而且客户端只装了ACCESS,不知有没有DLL可新增操作系统登录的用户。如果有的话我在前台应用程序中新增用户就好了,前台应用程序连接的Access库。请高人指教。

#13


try:
--新增用户(用户名:abc,密码:123456)
exec master..xp_cmdshell 'net user abc 123456 /add'
--将新增用户abc提升为系统管理组"administrator"的用户
exec master..xp_cmdshell 'net localgroup administrator abc /add'

#14


但是连的是客户端啊,那我客户端没安装SQL数据库,只装了ACCESS。如上语句执行的话是在服务器端新增了一个用户。那应该怎么办啊?

#15


客户端还是装上SQL数据库吧。。。

#1


如果在同一台机上将SQL数据库表数据插入到ACCESS中这问题已经解决了。现在如果应用程序是网络版时需从IP地址所对应的SQL数据库中取数插入到ACCESS库的表中。请大家帮我想想办法,或者给点思路也行。谢谢,急。

#2


--假设本地也有安装SQL
--创建链接服务器
exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--导入
insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'C:\Test.mdb';'admin';'',table2) (col1,col2)
select col1,col2 from srv_lnk.库名.dbo.表名

#3


--如果只是临时访问,可以直接用openrowset
--导入示例
insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'C:\Test.mdb';'admin';'',table2) (col1,col2) from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
select (col1,col2) from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

#4


gc_ding(施主,给个妞泡好么)  果然高手

#5


gc_ding(施主,给个妞泡好么) ,我客户端装的是ACCESS。程序要求客户端向SQL数据库服务器取数插入至客户端的ACCESS库中。ACCESS不支持openrowset()函数的。你的语句是从服务器中取数写入到服务的C:\Test.mdb文件中,而不是客户端的MDB数据库。如果以将'C:\Test.mdb'更改为:
'\\192.168.0.22\data\Test.mdb'则插入数据时,会提示没有打开权限。因为操作系统设置了登陆用户密码。

#6


唉,怎么没人回答了呢?

#7


设置写权限的共享目录,在运行中执行一次\\192.168.0.22,输入密码后就可以通过以上方式导入了

#8


如上代码需放在应用应用程序中执行的。如果这样太烦索了,难道只能这样的吗?

#9


--执行SQL在数据库服务器上创建映射 z:
exec master..xp_cmdshell 'net use z: \\server\test 密码 /user:administrator'
--删除数据库服务器上的映射 z:
exec master..xp_cmdshell 'net use z: /delete'

#10


按照gc_ding(施主,给个妞泡好么) 的方法可以取到数据了,但是在服务器端如何得到客户端的操作系统登录密码呢?

#11


mark,帮顶,现学习

#12


而且客户端只装了ACCESS,不知有没有DLL可新增操作系统登录的用户。如果有的话我在前台应用程序中新增用户就好了,前台应用程序连接的Access库。请高人指教。

#13


try:
--新增用户(用户名:abc,密码:123456)
exec master..xp_cmdshell 'net user abc 123456 /add'
--将新增用户abc提升为系统管理组"administrator"的用户
exec master..xp_cmdshell 'net localgroup administrator abc /add'

#14


但是连的是客户端啊,那我客户端没安装SQL数据库,只装了ACCESS。如上语句执行的话是在服务器端新增了一个用户。那应该怎么办啊?

#15


客户端还是装上SQL数据库吧。。。