第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

下面是這個(gè)函數(shù),請問該怎么去調(diào)用?

下面是這個(gè)函數(shù),請問該怎么去調(diào)用?

嗶嗶one 2022-12-15 18:14:24
alter function AutoNum(@prefix varchar(3))returns varchar(20)asbeginDECLARE @str VARCHAR(20), @dateStr VARCHAR(6),@num VARCHAR(5),@oldStr VARCHAR(20),@dt datetimeselect @dt=today from numdateSET @dateStr=RIGHT(YEAR(@dt),2)+RIGHT('0'+Convert(VARCHAR(2),MONTH(@dt)),2)+RIGHT('0'+Convert(VARCHAR(2),DAY(@dt)),2)SELECT @oldStr=MAX(pigID) FROM pigIF @oldStr is not null begindeclare @timer varchar(6),@amount varchar(5)--存放日期和流水號(hào)set @timer=substring(@oldStr,4,9)--截取時(shí)間6位set @amount=right(@oldStr,5)--截取流水號(hào)5位if @timer=@dateStr--如果數(shù)據(jù)庫表中的日期和當(dāng)前日期相等,則在流水號(hào)上加1set @str=@prefix+@timer+right('00000'+Convert(varchar(5),(@amount+1)),5)elseset @str=@prefix+@dateStr+'00001'endIF @oldStr is null--如果數(shù)據(jù)表為空,則新生成一個(gè)編號(hào)beginset @str=@prefix+@dateStr+'00001'endreturn @str endgoinsert into pig(pigID) values(dbo.AutoNum('HQ-'))
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

這里我們用C#做一個(gè)計(jì)算滑輪系統(tǒng)近似距離的函數(shù),并把該函數(shù)部署到SqlServer2005上去,這里使用的方法是原始的,全手動(dòng)方式的部署方式,主要的目的是為了理解部署原理,實(shí)際上直接開SqlServer數(shù)據(jù)庫項(xiàng)目可能更容易些。
首先讓我們看一下滑輪傳輸帶系統(tǒng)圖示,如下圖所示:
用C#編寫SQLServer自定義函數(shù)
一、首先在VS2005里編寫一個(gè)計(jì)算傳輸帶距離的函數(shù),源代碼如下所示:
//自定義計(jì)算傳輸帶距離的函數(shù)
using System;
using System.Collections.Generic;
using System.Text;

namespace SqlServerClr
{
public class pulley
{
public static double PulleyDistance(double Pulley1Diameter, double Pulley2Diameter, double BeltLength)
{
double length = 0, a = 2.0;
double b = BeltLength - 1.57 * (Pulley1Diameter + Pulley2Diameter);
double c = System.Math.Pow(Pulley1Diameter - Pulley2Diameter, 2.0);
//如果只是
double b1 = (b * b) - (4 * a * c);
if (b1 > 0)
{
length = (b + Math.Sqrt(b1)) / (2 * a);
//檢查傳輸帶是否合適
if (length < ((Pulley1Diameter + Pulley2Diameter) / 2))
{
//返回0,如果傳輸帶不合適;
length = 0;
}
}

//精度只允許一位小數(shù)
return System.Math.Round(length, 1);
}

}
}

把以上CS文件編譯為動(dòng)態(tài)連接庫, 在Visual Studio 2005 命令行模式下使用命令:
csc /t:library /out:pulleylib.dll pulley.cs
編譯成功,得到了一個(gè)pulleylib.dll

二、在SQL Sever 2005中部署CS的自定義函數(shù)
--編譯PulleyDistance函數(shù)
Drop Assembly Mechanics --如果編譯程序出錯(cuò)可以用此命令刪除程序集

Create Assembly Mechanics --Mechanics是編譯程序集名稱
from 'E:\pulleyLib.dll'
Go

Create function PulleyDistance
(
@diameter1 float,
@diameter2 float,
@beltLength float
)
--注意這里的三個(gè)參數(shù)名稱可以和CS編寫的靜態(tài)函數(shù)不同,但類型要兼容一致
returns float
As External name
[Mechanics].[SqlServerClr.pulley].[PulleyDistance]
--CS中定義的靜態(tài)函數(shù)全稱一般為【命名空間.類名】.【函數(shù)名】,注意這里是區(qū)分大小寫的,對應(yīng) [SqlServerClr.pulley].[PulleyDistance]
GO

--檢查是否已經(jīng)部署上了
select dbo.PulleyDistance(3,2,100)

--檢查部署結(jié)果
select routine_name,routine_body from information_schema.routines

通過以上兩步,一個(gè).NetCLR的函數(shù)就部署到了SqlServer上了

 


查看完整回答
反對 回復(fù) 2022-12-18
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

//定義 
SqlConnection conn = new SqlConnection(DbTool.getSQLConnString());
string strSql = "AutoNum"; //" and user_role='Administrator'";
SqlCommand cmd = new SqlCommand(strSql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@cust_name",SqlDbType.NVarChar).Value="";
cmd.Parameters.Add("@returnString", SqlDbType.NVarChar);
cmd.Parameters["@returnString"].Direction = ParameterDirection.ReturnValue;
string strRTN = "";
//方法
try
{
conn.Open();
object o= cmd.ExecuteScalar();

strRTN = cmd.Parameters["@returnString"].Value.ToString();

}
catch (Exception ex)
{

LabelTestMSG.Text = ex.Message;

}
finally
{

if (!(conn.State == ConnectionState.Closed))
{

conn.Close();

}

}

}

--------------
其實(shí)有個(gè)更簡單的方法,你把函數(shù)封裝到存儲(chǔ)過程里,用exec的語句直接跟select語句一樣的調(diào)用.

 


查看完整回答
反對 回復(fù) 2022-12-18
  • 2 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)