C/S架构的程序中,客户端环境不安装MYSQL、ORACLE等数据库的连接组件的情况下向目标数据库查询数据集

郑鹏飞3年前爱T809

我有一个C/S架构的程序,服务端是MSSQL数据库。

现在需要在C客户端中查询MYSQL、ORACLE的数据集,在C客户端中进行展示,做得到吗?

1、C客户端的环境不需要安装MYSQL、ORACLE的客户端连接组件;

2、C客户端的网络环境与MYSQL、ORACLE是不通的。

以上条件下,能做到吗?

答案是可以的!方法是在MSSQL的存储过程中,接收C客户端提交过来的查询条件,动态生成MYSQL、ORACLE的数据库查询代码,然后由MSSQL将动态代码提交到目标数据库中进行查询。

操作步骤:

1、在MSSQL中安装目标数据库的ODBC连接组件:

    此组件是在MSSQL中安装的,所以C客户端是不需要进行安装和配置的;

2、确认MSSQL与目标数据库是可以连接的:

    不需要C客户端与目标数据库在网络层面上互通,只需要保证MSSQL与目标数据库是通的即可。

3、在MSSQL中配置ODBC的系统DSN连接:

    在系统DSN里配置完整的与目标数据库的连接信息,确认测试连接是成功的。

4、在MSSQL中配置“链接服务器”:

image.png

    数据源:ODBC系统DSN与目标数据库连接的名称;

    安全性:配置目标数据库的登录用户和密码

    服务器选项:我设置了下面这些信息

image.png


5、在MSSQL的存储过程中建立如下存储过程:

create proc [dbo].[在目标数据库中运行动态代码并返回数据集]
	@sql varchar(8000)
	,@OO bit = 0 output
	,@OO1 varchar(500) = '' output
as
set nocount on;
Begin Try
	exec(@sql) at [链接服务器名称]	
	set @OO = 1;
	set @OO1 = '';
End Try
Begin Catch
	set @OO = 0;
	set @OO1 = LEFT(ERROR_MESSAGE(),500)
End Catch

6、在C客户端中生成需要在目标数据库中查询的动态SQL代码,或者是将参数提交到MSSQL的存储过程中,再由MSSQL的存储过程来生成向目标数据库查询数据集的动态代码,提交到上面生成的存储过程中即可实现。

7、在MSSQL中可以用以下代码进行测试:

declare @OO bit, @OO1 varchar(1000)
exec [在目标数据库中运行动态代码并返回数据集]
	@sql = 'select ....'
	,@OO = @OO output
	,@OO1 = @OO1 output
select @OO,@OO1


我是郑鹏飞。 如果您觉得我的文章对您有帮助,可以点击站点上的 关于站点/支持和帮助
转载请注明 : 文章转载自不了阁-飞哥 blog.forbs.cn
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。

相关文章

检查 RichTextBox ScrollBar thumb 是否在滚动条的底部

检查 RichTextBox ScrollBar thumb 是否在滚动条的底部

Imports System.Runtime.InteropServices Public Class jMyBox    &nbs...

如何使用VxTerm进行网络设备登录管理

如何使用VxTerm进行网络设备登录管理

咱们一般做设备,如安全设备、路由网关、交换机、服务器等运维管理时,一般都需要用到一个叫做SSH工具、Telnet工具的,下载一个VxTerm,就可以实现。软件地址:https://download.c...

拒绝了对对象 'sp_OACreate' (数据库 'mssqlsystemresource',架构 'sys')的 EXECUTE 权限。

拒绝了对对象 'sp_OACreate' (数据库 'mssqlsystemresource',架构 'sys')的 EXECUTE 权限。

    有个接口,我采用了MSSQL的存储过程执行时使用ServerXMLHTTP直接访问WebService接口的WSDL,直接在MSSQL里就可以使用SOAP协议访问接口,何必...

安全的Windows 3389远程连接维护服务器,我是如何做到的?-引言

安全的Windows 3389远程连接维护服务器,我是如何做到的?-引言

我想要实现:(个人觉得最完美的远程维护服务器的实现)      除了我之外,其它人都无法向我的远程维护端口发起TCP/UDP连接。     ...

可能是国内唯一的、真正国产的、最良心的SSH工具,没有之一。

可能是国内唯一的、真正国产的、最良心的SSH工具,没有之一。

VxTerm的介绍以及下载地址VxTerm,是一款全部由国人实现的、并且是仅有一个文件纯绿色不需要安装绝对安全的多窗口多会话多线程的SSH工具。...

可能这就是C#比不上别的语言流行的其中的一个原因:.net的各种版本不兼容,高版本竟然也不向低版本兼容!这太扯蛋了!

可能这就是C#比不上别的语言流行的其中的一个原因:.net的各种版本不兼容,高版本竟然也不向低版本兼容!这太扯蛋了!

我的VxTerm更新到2.4的时候,手贱,就把.net降到了3.5,想着会不会可以在Win7、Win10默认情况下可以直接运行。结果它娘的,竟然是不行的!虽然,可以通过在程序目录下建立VxTerm.e...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。