Sql Server 数据库中调用dll文件

1.首先新建一个空的解决方案,并添加一个类库,代码如下,编译并生产dll

using System;  
using System.Collections.Generic;  
using System.Data.SqlTypes;  
using System.Linq;  
using System.Text;  
  
namespace TEST  
{  
    public class TestTrans  
    {  
        [Microsoft.SqlServer.Server.SqlFunction]  
        public static SqlString GenerateDecryptString(string name)  
        {  
            string decode = string.Empty;  
            decode = string.Format("HELLO WORLD  {0}!", name);//DecryptString(dataXML.Value);  
            SqlString sqlValue = new SqlString(decode);  
            return sqlValue;  
        }  
    }  
}  


2.启用CLR功能
默认情况下,SQL Server中的CLR是关闭的,所以我们需要执行如下命令打开CLR:
  exec sp_configure 'clr enabled',1   
  reconfigure   
  Go


3.将程序集引用到数据库中
CREATE ASSEMBLY testHelloWorld FROM 'C:\TEST.dll'      --('C:/TEST.dll'w为错误写法)


4.创建函数

CREATE FUNCTION dbo.clrHelloWorld     
(     
    @name as nvarchar(200)     
)      
RETURNS nvarchar(200)    
 AS EXTERNAL NAME testHelloWorld.[TEST.TestTrans].GenerateDecryptString   


5.调用函数
 
SELECT dbo.clrHelloWorld('耿耿')  

6.执行结果

HELLO WORLD  耿耿!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接sqlserver数据库需要使用ADO(ActiveX Data Objects)技术,以下是C++ ADO连接sqlserver数据库的头文件、源文件和主函数调用示例: 头文件: ```c++ #include <iostream> #include <windows.h> #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") ``` 源文件: ```c++ using namespace std; int main() { // 定义ADO相关变量 _ConnectionPtr pConn; _RecordsetPtr pRs; HRESULT hr; // 初始化COM库 CoInitialize(NULL); try { // 创建连接对象 hr = pConn.CreateInstance(__uuidof(Connection)); if (FAILED(hr)) { throw _com_error(hr); } // 打开数据库连接 pConn->Open("Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDB;User Id=sa;Password=123456;", "", "", adModeUnknown); // 创建记录集对象 hr = pRs.CreateInstance(__uuidof(Recordset)); if (FAILED(hr)) { throw _com_error(hr); } // 执行SQL查询语句 pRs->Open("SELECT * FROM MyTable", pConn.GetInterfacePtr(), adOpenStatic, adLockReadOnly, adCmdText); // 遍历记录集并输出结果 while (!pRs->adoEOF) { cout << pRs->Fields->GetItem("ID")->Value.intVal << "\t" << pRs->Fields->GetItem("Name")->Value.bstrVal << endl; pRs->MoveNext(); } // 关闭记录集 if (pRs != NULL) { pRs->Close(); pRs.Release(); } // 关闭数据库连接 if (pConn != NULL) { pConn->Close(); pConn.Release(); } } catch (_com_error e) { // 输出错误信息 cout << "Error: " << e.Description() << endl; } // 释放COM库 CoUninitialize(); return 0; } ``` 主函数调用: ```c++ int main() { // 调用连接数据库函数 connectDB(); return 0; } ``` 以上是一个简单的C++ ADO连接sqlserver数据库的示例代码,具体的连接字符串和SQL查询语句需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值