小编Ice*_*man的帖子

如何将udtt传递到SQL Server Management Studio中的存储过程

我有一个SP prc_Foo_Delete,它有以下签名:

ALTER PROCEDURE [prc_Foo_Delete]
    @fooIds [int_udtt] READONLY,
    @deleteReason int,
    @comment nvarchar(512),
    @deletedBy nvarchar(128)
Run Code Online (Sandbox Code Playgroud)

int_udtt定义为:

CREATE TYPE [int_udtt] AS TABLE(
    [Id] [int] NOT NULL,
    PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下脚本在Management Studio中调用此SP:

DECLARE @return_value int
EXEC    @return_value = [prc_Foo_Delete]
        @fooIds = 3,
        @deleteReason = 2,
        @comment = N'asfdasdf',
        @deletedBy = N'asdfa'

SELECT  'Return Value' = @return_value
GO
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:操作数类型冲突:int与int_udtt不兼容.如何在此工具中传入int或int列表以进行调用(我知道如何在代码中执行此操作但不在Management Studio中执行).

sql-server stored-procedures user-defined-types

20
推荐指数
1
解决办法
2万
查看次数

正则表达式匹配冒号后的字符串

输入字符串是这样的:OU = TEST:This001.我们需要额外的"This001".最好的C#.

c# regex

6
推荐指数
2
解决办法
2万
查看次数

在模块之间转换枚举

我在一个模块(A)中有一个枚举定义,例如SUCCESS = 0,INVALID_REQ = 1等.然后我有另一个dll(模块B),它有自己的状态枚举集.一旦我们在A中添加了一个新的枚举值,我们就必须手动将它添加到B,因为A在.NET中,B是C代码.此外,A中的枚举只是B中状态枚举的一部分(B除了A的状态外,还有自己的内部状态).这似乎是这两个模块之间非常紧密的耦合.有什么建议可以减少它们的耦合吗?谢谢!

c c# enums module

5
推荐指数
1
解决办法
248
查看次数

C#通用列表,默认大小或供应一

我想知道是否存在差异(在性能,内存节省方面)来定义具有默认大小的列表或指定一个列表.

List<object> m_objects = new List<object>();

or 

List<object> m_objects = new List<object>(100);
Run Code Online (Sandbox Code Playgroud)

如果添加更多项目,两者都会增加一倍,对吧?

谢谢,

c# generics

4
推荐指数
1
解决办法
3085
查看次数

WiX安装EventSource

我基于这个例子创建了我的事件源.我的事件源看起来像这样:

[EventSource(Name = "Samples-EventSourceDemos-EventLog")]
public sealed class MinimalEventSource : EventSource
{
    public static MinimalEventSource Log = new MinimalEventSource();

    [Event(1, Message = "{0} -> {1}", Channel = EventChannel.Admin)]
    public void Load(long baseAddress, string imageName)
    {
        WriteEvent(1, baseAddress, imageName);
    }
}
Run Code Online (Sandbox Code Playgroud)

该示例使用代码来模拟安装/卸载过程.从其他一些SO问题中,我看到了另一个使用事件消息文件安装事件源的示例.

但它缺少一些很好的例子,说明如何安装/注册由清单定义的EventSource.我正在调查使用CustomAction做类似的事情:

wevtutil.exe im <EtwManifestManFile> /rf:"EtwManifestDllFile" /mf:"EtwManifestDllFile"

但是想知道你有什么建议吗?

c# wix eventlog-source event-log wix3.5

4
推荐指数
1
解决办法
1255
查看次数

在SDK中使用log4net

我正在使用C#提供SDK.要启用字段调试,我想使用log4net包含日志记录.如何在不使用App.config的情况下启用配置,因为程序集将是一个DLL?

谢谢,

c# dll sdk log4net

3
推荐指数
1
解决办法
9201
查看次数

将委托与参数一起传递给函数

我想排队一个任务列表,然后在某个事件上执行。代码:

internal class MyClass
{
    private Queue<Task> m_taskQueue;

    protected MyClass()
    {
        m_taskQueue = new Queue<Task>();
    }

    public delegate bool Task(object[] args);

    public void EnqueueTask(Task task)
    {
        m_taskQueue.Enqueue(task);
    }

    public virtual bool Save()
    {
        // save by processing work queue
        while (m_taskQueue.Count > 0)
        {
            var task = m_taskQueue.Dequeue(); 
            var workItemResult = task.Invoke();

            if (!workItemResult) 
            {
                // give up on a failure
                m_taskQueue.Clear();
                return false;
            }                
        }
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

每个委托任务可能有自己的参数列表:Task(object[] args)。我的问题是如何将参数传递给任务队列的每个任务?

c# parameters delegates

3
推荐指数
1
解决办法
2205
查看次数

来自实例的SQL查询计数

我有一张包含公共汽车和学生注册信息的表格:

CREATE TABLE [dbo].[BusSignupInstance](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [StudentId] [int] NOT NULL,
    [BusId] [int] NOT NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

以下是一些示例数据:

Id  StudentId   BusId
1   1   1
2   2   1
3   3   1
4   1   2
5   4   2
6   1   3
7   5   3
Run Code Online (Sandbox Code Playgroud)

我想要总线ID的总数.在这种情况下将是:

BusId    Num of Students
1      2 (student id 2, 3)
2      1 (student id 4)
3      2 (student id 1, 5)
Run Code Online (Sandbox Code Playgroud)

结果是根据注册的顺序,如果学生1注册三次,只有最后一次有效.

sql sql-server

3
推荐指数
1
解决办法
115
查看次数

在C++中使用接口进行依赖注入

假设我有以下抽象类,并将其用作C++中的"接口":

class IDemo
{
  public:
    virtual ~IDemo() {}
    virtual void Start() = 0;
};


class MyDemo : IDemo
{
  public:
    virtual void start()
    {
      //do stuff
    }
};
Run Code Online (Sandbox Code Playgroud)

然后在需要有接口句柄的类中(通过注入具体类):

class Project
{
  public:
    Project(IDemo demo);

  private:
    IDemo *_demo;
};
Run Code Online (Sandbox Code Playgroud)

我的目的是通过Project的构造函数分配具体的Demo类.此代码无法编译,因为IDemo无法实例化.有什么建议?提前致谢.

c++ abstract-class dependency-injection interface

2
推荐指数
1
解决办法
2142
查看次数

在不使用Log()的情况下查找位

我有一个整数输入,功率为2(1,2,4,8等).我希望函数在不使用log()的情况下返回位位置.例如,对于上面的输入,将分别返回{0,1,2,3}对于C#.如果这可以在SQL中完成.

谢谢!

c# sql bit-manipulation

1
推荐指数
1
解决办法
1638
查看次数

什么时候可以在SQL中使用SELECT*

我知道一般来说在SQL中使用SELECT*是个坏主意.有没有例外情况?谢谢!

sql select

0
推荐指数
1
解决办法
201
查看次数