存储过程

利用VS调试存储过程

╄→гoц情女王★ 提交于 2020-03-16 07:17:24
SQL SERVER2008存储过程调试 昨天被问到sql server中存储过程怎么调试,我曾经写存储过程,调试方法非常笨拙,就是逐条运行语句,然后查看结果是不是预期的,这样的调试方法,实在是无奈之举,极大程度地限制了开发速度和准确性。今天在他的提点下,研究了下SQL SERVER 2008的存储过程调试。 1.在SQL SERVER2008中调试存储过程 下面内容引自MSDN SQL SERVER 2008的SSMS是支持单步debug的,可是在调试之前必须配置权限。 假设 SQL Server Management Studio 与 SQL Server 数据库引擎实例在同一台计算机上执行,则对于执行 Transact-SQL 调试器没有配置要求。可是,当 SQL Server Management Studio 与数据库引擎实例在不同计算机上执行时,若要执行 Transact-SQL 调试器,则必须在两台计算机上使用 “Windows 防火墙” 控制面板应用程序来启用程序和port例外。 在执行数据库引擎实例的计算机上,在 “Windows 防火墙” 中指定下面信息: 将 TCP port 135 加入�到例外列表。 将程序 sqlservr.exe 加入�到例外列表。默认情况下,sqlservr.exe 安装在 C:\Program Files\Microsoft SQL

附加进程调试和存储过程调试

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-16 07:16:16
如果当你的项目过大时,选择普通的调试速度会很慢,我们就可以尝试附加到进程的调试 ,首先还是像平时一样选择好断点,然后直接运行浏览需要测试的页面如果,然后在vs2005里面选择工具附加到进程 操作系统 宿主 进程 ASP.NET 进程 名称 Windows Server 2003 IIS 6.0 w3wp.exe Windows XP IIS 5.1 aspnet_wp.exe Windows 2000 IIS 5.0 aspnet_wp.exe 就ok了,注意如果是调试page_load里面的东西时需要刷新重新加载一下,就可以调试了、 存储过程调试 在vs2005服务器资源管理器新建一个数据连接, 选择要 调试 的存储过程,并加上相应的断点 右击存储过程,选择单步执行存储过程, 输入存储过程需要的参数后便可以开始 调试 了。 我记得以前看别人在sql2005里中调试存储过程的,就好象在vs2005中某个方法调用了存储过程,当执行了此存储过程,我们就可以在sql2005里调试了 哪位高手知道告诉我啊.. 来源: https://www.cnblogs.com/luca623/archive/2008/07/15/1243151.html

利用.NET扩展MDX存储过程

跟風遠走 提交于 2020-03-16 07:13:18
  SSAS的MDX脚本提供了强大的数据分析查询功能,然而在实际使用中同样会遇到一些问题使得用MDX来表达比较困难,因为MDX并不能提供满足所有数据分析需求的函数,这个时候可以尝试通过基于.NET的存储过程以编程的方式来完成我们特定的功能需求。基于.NET的MDX存储过程支持所有基于.NET平台的编程语言。可以通过创建一个包含所需功能的.NET程序集,然后将这个程序集加载到分析服务器或某个多维数据库中,最后就可以在MDX中引用这个.NET编写的存储过程了。 CustomAnalysisAssembly namespace CustomAnalysisAssembly { public class SPDemo { public static double SalesDifference( double firstVal, double secondVal) { return secondVal – firstVal; } } }   上面是用C#实现的一个简单Demo存储过程,用于处理两个值的差。上面使用的是一个静态函数来实现具体功能,而实际上静态函数并非唯一的选择,也可以使用非静态的方法。问题在于在MDX中引用非静态方法的时候,可能会造成服务器多次创建同一个对象,造成资源浪费。相反,如果使用静态函数,服务器就不会为其创建实例对象而是直接使用这个静态函数。所以在用

SQL Server分页查询存储过程

五迷三道 提交于 2020-03-15 09:04:00
--分页存储过程 create PROCEDURE [dbo].[commonPagination] @columns varchar(500), --要显示的列名,用逗号隔开 @tableName varchar(100), --要查询的表名 @orderColumnName varchar(100), --排序的列名 @order varchar(50), --排序的方式,升序为asc,降序为 desc @where varchar(100), --where 条件,如果不带查询条件,请用 1=1 @pageIndex int, --当前页索引 @pageSize int, --页大小(每页显示的记录条数) @pageCount int out --总页数,输出参数 as begin declare @sqlRecordCount nvarchar(1000) --得到总记录条数的语句 declare @sqlSelect nvarchar(1000) --查询语句 set @sqlRecordCount=N'select @recordCount=count(*) from ' +@tableName + ' where '+ @where declare @recordCount int --保存总记录条数的变量 exec sp_executesql

存储过程中的逻辑语句

♀尐吖头ヾ 提交于 2020-03-15 09:01:34
第一种: if() then else end if --------------------------------------------------------------------------------------------- 第二种 if() then elseif() then else end if ---------------------------------------------------------------------------------------------------- 第三种 while循环 delimiter $$ CREATE procedure insertNum() begin DECLARE i int default 0; while(i<10) do begin set i=i+1; insert into tbl_num (id) values (i); END ; end while; end; $$ 调用后就可以循环向表中插入10条数据了注意,这个语法中每个end都需要;结尾的 结构应该是 while() do begin xxx要做的逻辑 end; end while; -----------------------------------------------------------------------

JDBC调用存储过程

你离开我真会死。 提交于 2020-03-14 21:54:04
在JDBC API中提供了调用存储过程的方法,通过CallableStatement对象进行操作。CallableStatement对象位于java.sql包中,它继承于Statement对象,主要用于执行数据库中定义的存储过程,其调用方法如下: {call <procedure-name>[(<arg1>,<arg2>,...)]} 其中,arg1、arg2为存储过程中的参数,如果存储过程中需要传递参数,可以对其进行赋值操作。 技巧:存储过程是一个SQL语句和可选控制流语句的预编译集合。编译完成后存放在数据库中,这样就省去了执行SQL语句时对SQL语句进行编译所花费的时间。在执行存储过程时只需要将参数传递到数据库中,而不需要将整条SQL语句都提交给数据库,从而减少了网络传输的流量,从另一方面提高了程序的运行速度。 例1.1 创建查询所有图书信息的存储过程,通过JDBC API对其调用获取所有图书信息,并将其输出到JSP页面中。 (1)在数据库test中创建名称为findAllBook的存储过程,用于查询所有图书信息。关键代码如下: BEGIN SELECT* FROM books ORDER BY id DESC; END 各种数据库创建存储过程的方法并非一致,本实例使用的是MySQL数据库,如果使用其他数据库创建存储过程请参阅数据库提供的帮助文档。 (2)

JAVA调用数据库存储过程

前提是你 提交于 2020-03-14 21:52:51
1.首相给数据库创建一个简单的存储过程:(在这里我是创建的Oracle数据库的存储过程) create or replace procedure stu_upd(nname varchar2,npassword varchar2) is begin update student set name=nname where password=npassword; end pl_pro; create or replace procedure stu_del(nid number)is begin delete from student where ID=nid; end stu_del; create or replace procedure stu_ins(nid number,nname varchar2,npassword varchar2,nage varchar2,nemail varchar2)is begin insert into student(id,name,password,age,email) values(nid,nname,npassword,nage,nemail); end stu_ins; 2.通过JAVA程序与数据库建立连接: package jdbc; import java.io.FileInputStream; import java.io

C#调用存储过程的通用类

筅森魡賤 提交于 2020-03-14 21:30:51
using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Collections; using System.Data; // 摘要:数据访问助手。 // 作者:ZhiQiao // 日期:2008/07/02 namespace ZhiQiao.DataAccessHelper { // 存储过程调用助手。 public class StoreProcedure { // 存储过程名称。 private string _name; // 数据库连接字符串。 private string _conStr; // 构造函数 // sprocName: 存储过程名称; // conStr: 数据库连接字符串。 public StoreProcedure( string sprocName, string conStr) { _conStr = conStr; _name = sprocName; } // 执行存储过程,不返回值。 // paraValues: 参数值列表。 // return: void public void ExecuteNoQuery( params object [] paraValues) {

ASP.NET如何调用MySQL的存储过程

99封情书 提交于 2020-03-14 21:28:05
(方法1) ASP.NET如何调用 MySQL 的存储过程 由于项目中需要在ASP.NET中如何调用MySQL的存储过程, 百度和Google后发现中文的网站讲解也不是很清楚。 没有办法,只有自己动手。折腾一下午终于搞定,所以拿出来分享! 调用的存储过程虽然简单,但是麻雀虽小,五脏俱全.呵呵;) 首先必须下载支持.NET的驱动,有两种策略: 使用ODBC或Connector/Net 至于这两种方法中那种快些,查看网上的文章说是使用ODBC联结用时24秒,Connector/Net联结用时17秒 本人并没有去求证,但使用Connector/Net是肯定要方便的,呵呵。 Mysql的connector/net5.0下载地址: http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.6.zip/from/pick 安装好以后, 点属性,然后点查找目标,点向上一层目录,找到Binaries\.NET 2.0,然后将这个文件复制到你的工程目录下,一般这样的DLL文件会保存到bin目录下. aspx页面UI层次的显示等就不讲解了,看看所谓的业务逻辑层的连接吧。。。。 procedure.cs类文件中: public void Delete_procedure() // “删除”的存储过程 { string

写了一个存储过程

梦想与她 提交于 2020-03-14 14:40:07
-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除 DROP PROCEDURE IF EXISTS sgjan; -- 创建存储过程 CREATE PROCEDURE sgjan() BEGIN -- 定义变量 DECLARE s int DEFAULT 0; DECLARE p varchar(255); DECLARE s1 varchar(255); DECLARE k varchar(256); DECLARE r varchar(256); DECLARE u varchar(256); -- 定义游标,并将sql结果集赋值到游标中 DECLARE report CURSOR FOR ( SELECT DATE_FORMAT( DATE_SUB( NOW( ), INTERVAL ac DAY ), '%Y-%m-%d' ) AS dateTime FROM ( SELECT @ai := @ai + 1 AS ac FROM ( SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 ) ac1, ( SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 )