当前位置:首页 » 编程语言 » sql调用dll

sql调用dll

发布时间: 2022-04-22 22:27:37

sql SERVER 2000 调用第三方DLL 传参问题

SQL数据库中的INT数据类型和你的DLL里的INT数据类型不一致
例如:
VB里的Integer类型存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。
而SQL里的Int类型数据范围是:-2^31~2^31-1的整数

两者之间的区别很大

建议你将DLL的参数全部转为string,这样会更好处理一些。

❷ sql server 2008 如何调用dll

用sp_addextendedproc(具体看相关帮助)
如:

usemaster
go
ifexists(select*fromsysobjectswherename='xp_mm'andtype='X')
begin
execsp_dropextendedproc'xp_mm'
DBCCxp_mm(FREE)
end
go
sp_addextendedproc'xp_mm','xp_mm.dll'
go
grantexeconxp_mmtopublic

使用时:

executemaster.dbo.xp_mm参数。。。

❸ 如何将SQL的数据库连接封装到DLL中

使用C#生成dll文件并调用
一、创建dll文件:

例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。

打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

using System.Text;
using System.Security.Cryptography;

namespace md5
{
public partial class Program : UserControl
{
#region MD5 32位加密:GetMd5Str32
/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="strSource">待加密字串</param>
/// <returns>加密后的字串</returns>
public static string GetMd5Str32(string strSource)
{
byte[] bytes = Encoding.ASCII.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();

for (int i = 0; i < 16; i++)
{
sb.Append(hashValue[i].ToString("x2"));
}

return sb.ToString().ToUpper();
}
#endregion

#region 核对md5编码是否一致:CheckMd5String()

/// <summary>
/// 核对md5编码是否一致
/// </summary>
/// <param name="ConvertString"></param>
/// <returns>如果一致返回true,否则返回false</returns>
///
public static bool CheckMd5String(string str1, string str2)
{
string md5String = str1; //需要验证的字符串
string md5DbString = str2; //需要核对的32位md5编码

int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true);
if (result == 0)
{
return true;
}
else
{
return false;
}
}
#endregion
}
}

修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。

在...\bin\Debug文件假下,可以找到相应的dll文件。

二、部署dll流程:

首先把dll文件放到应用程序...\bin\Debug\下;
然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。
注意:要在应用文件头处使用using md5;命令。

测试应用程序代码,如下:Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using md5;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string str1 = textBox1.Text.ToString();
string md5String = textBox2.Text.ToString();

textBox3.Text = md5.Program.GetMd5Str32(str1);
textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString();

}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

❹ SQL Server2008可以调用c写的DLL的方法吗,如果可以,怎么调用

给你举一个列子
create assembly Regex from 'E:TestLibsMSSQLExtMethod.RegexMSSQLExtMethod.RegexbinDebugMSSQLExtMethod.Regex.dll' with permission_set = SAFE
exec sp_configure 'clr enabled',1
RECONFIGURE
create function [dbo].Regex.Math,@Regex nvarchar(max))
returns nvarchar(max) with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[Math]
go
create function [dbo].Regex.Replace,@Regex nvarchar(max),@Replace nvarchar(max))
returns nvarchar(max) with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[Replace]
go
create function [dbo].Regex.IsMath,@Regex nvarchar(max))
returns bit with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[IsMath]
go

❺ 在C#中怎么将所有的sql语句打包成.dll文件或者其他 在C#程序中又怎么调用呢

我不明白 你是想生成DLL 还是调用?
如果是调用的话! 你只要把你生成好的DLL放到bin目录下! 然后在你的项目里 using 你的DLL名称 然后在项目里 实例化一下你的类名就可以了

❻ Mysql触发器或存储过程中能否调用dll

使用非SQL格式dll,也就是平时所写的,如果打死也不明白就用他就可以。
dll需要事先先注册,
注册是:regsvr32 名字.dll
卸载是:regsvr32 /u 名字.dll

[vb] view plain
CREATE TRIGGER [名称] ON [表名]
AFTER INSERT, UPDATE, DELETE
AS
DECLARE @hr int
DECLARE @obj int
DECLARE @out varchar(200)
exec @hr = sp_oacreate '[名称空间|工程名].[类名]', @obj out
IF @hr = 0
BEGIN
exec @hr = sp_oamethod @obj,'[函数名]',@out output,'[参数1]','[参数2]',...'[参数N]'
if @hr = 0
BEGIN
print @out
END
END

使用SQL格式的DLL
以下这代码要放到master数据库执行

[c-sharp] view plain
CREATE PORC [名字] AS
BEGIN
DECLARE @out varchar(200)
EXEC exec sp_addextendedproc '[函数名]', '[名称空间|工程名
.dll' --添加dll进来
EXEC @out = [函数名] [参数1] [参数2] ... [参数N] --注意:函数名前不能用@函数名和参数之间,参数和参数之间,不能用,,我用过,报错了...
EXEC exec sp_sp_dropextendedproc'[函数名]' --这里就是卸载了

直接执行外部程序,例如exe,黑客爱好这代码
上面的代码黑客也爱好,为什么?我才不会告诉你他喜欢用sp_addextendproc来加载xp_cmdshell

[c-sharp] view plain
--以下代码不是顺序执行,只是说明
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; -- 开启xp_cmdshell,几乎不需要执行,多数人不会主要到
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE; -- 这自然是关闭喽,要做啥非法事的话,就不要执行这句。
EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int --这句是如果不能执行xp_cmdshell时候,例如报127错误时修复使用
sp_addextendedproc 'xp_cmdshell','xpsql70.dll' -- 同上
--以下是使用xp_comshell
--有返回值
DECLARE @out int
EXEC @out = xp_cmdshell '[文件名]' '[参数1]' '[参数2]' ... '[参数N]'
无返回值
EXEC xp_comshenll'[文件名]' '[参数1]' '[参数2]' ... '[参数N]',no_output

❼ 关于SQL 扩展存储过程DLL问题

其他电脑不能运行是因为没安装VCR6.0.
1、安装VCRuntime 6.0。
2、发布dll的时候使用静态连接库的方式。发布出来的dll应该是M为单位的。详细的解决方案网络搜索:VS编译C++独立运行程序。

❽ 怎么用C#编写个dll,用来读取SQL数据库中一张表的数据,然后返回XML格式字符串

这是由两部操作组成的,一个是你要从数据库中将这个字段读出来,再一个就是将你读出来的数据赋值textBox.Text中就行,你可以参考一下(别复制粘贴,因为需要按照你的程序修改一下):
//这个方法是用来显示一个单一的返回值而编写的,你只需要向其中传输你的
//SQL语句就行,这里的返回值的信息就是string 类型的。
public string mysqlfun(string sql)
{
string info = "";
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = "Data Source=.;Initial Catalog=你的数据库的名字;Integrated Security=True";//这是一个连接字符串,考虑
//widows安全模式下登录
conn.Open();
DataSet objDataSet = new DataSet();
SqlDataAdapter obj = new SqlDataAdapter();
obj.SelectCommand = new SqlCommand(sql, conn);
obj.Fill(objDataSet, "info");
SqlCommand objSqlCommand = new SqlCommand(sql, conn);
SqlDataReader objSqlReader = objSqlCommand.ExecuteReader();
while (objSqlReader.Read())
{
info = objSqlReader.GetValue(0).ToString ();
}
return info;
}
我相信你应该会写SQL语句吧!
然后就像我刚才说的:
textBox1.Text=info;
这样就行了。希望能帮到你!!
最后,还有一点提示,看到你的数据库是master,如果是你自己练习的,最好自己创建一个数据库,因为master数据库是一个系统数据库,使用它感觉不是很好。

❾ 如何调用sqlite3.dll

调用dll分显示加载和隐式加载。区别在于前者可以指定需要调用的导出函数,后者是全部加载。
sqlite3.dll用隐式加载。
在你的工程中添加sqlite3.h文件。在你需要使用的地方

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include "sqlite3.h"
#pragma comment( lib, "sqlite3" )

sqlite3* m_pDB = NULL; //数据库指针
char* szSQL = NULL; //语句
sqlite3_stmt* pStmt = NULL; //指向语句的指针

szSQL = ""; //组装语句
nRet = sqlite3_exec( m_pDB, szSQL, NULL, NULL, NULL ); //执行

szSQL = ""; //组装语句
nRet = sqlite3_prepare( m_pDB, szSQL, -1, &pStmt, NULL );
sqlite3_bind_text( pStmt, 1, INTER_ADMIN, -1, SQLITE_STATIC ); //绑定变量
nRet = sqlite3_step( pStmt ); //执行

热点内容
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:727
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:797
网卡访问 发布:2025-05-18 03:35:04 浏览:504
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:366
ef数据库查询数据 发布:2025-05-18 03:29:36 浏览:668
百度云下载文件夹 发布:2025-05-18 03:17:33 浏览:674
php云开发 发布:2025-05-18 03:12:41 浏览:447
sql语句显示表 发布:2025-05-18 03:12:30 浏览:690
数据库系统的例子 发布:2025-05-18 03:02:42 浏览:191
数字化储存与编译是什么 发布:2025-05-18 02:56:55 浏览:217