小编Cri*_*scu的帖子

为什么T-SQL块即使不执行也会出错?

我正在编写一个(看似)直接的SQL片段,在确保列存在后删除列.
问题:如果列不存在,代码 IF子句抱怨说,它无法找到列!好吧,doh,这就是它在IF条款中的原因!
所以我的问题是,为什么一段不应该执行的代码会出错?

这是片段:

IF exists (select * from syscolumns
    WHERE id=object_id('Table_MD') and name='timeout')
BEGIN
    ALTER TABLE [dbo].[Table_MD]
        DROP COLUMN timeout
END
GO
Run Code Online (Sandbox Code Playgroud)

......这是错误:

Error executing SQL script [...]. Invalid column name 'timeout'

我正在使用Microsoft SQL Server 2005 Express Edition.

sql t-sql

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

Ruby支持逐字字符串吗?

Ruby中是否支持(缺少更好的词)非转义(逐字)字符串?

就像在C#中一样:

@"c:\Program Files\"
Run Code Online (Sandbox Code Playgroud)

......或者在Tcl中:

{c:\Program Files\}
Run Code Online (Sandbox Code Playgroud)

ruby string syntax

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

.NET中的通用ThreadPool

对于我来说,这是一个相对常见的任务,我认为,对于许多.NET程序员来说:
我想使用.NET ThreadPool来调度需要处理给定类型任务的工作线程.

作为回顾,ThreadPool及其关联委托的排队方法的签名是:

public static bool QueueUserWorkItem (
    WaitCallback callBack,
    Object state
)
public delegate void WaitCallback (Object state)
Run Code Online (Sandbox Code Playgroud)

因此,典型的通用工作线程类看起来像:

public class Worker<T> {
    public void schedule(T i_task) {
        ThreadPool.QueueUserWorkItem(execute, i_task)
    }
    private void execute(Object o){
        T task = (T)o;  //What happened to the type safety?  
        executeTask(task);
    }
    private void executeTask(T i_task){
        //process i_task
    }
}
Run Code Online (Sandbox Code Playgroud)

注意state参数的类型?是的Object!

.NET团队选择不使QueueUserWorkItem方法(或整个ThreadPool类)通用的令人信服的原因是什么?我无法相信他们只是忽略了它.

这是我想看到它的方式:

//in the ThreadPool class:
public static bool QueueUserWorkItem<T> (
    WaitCallback<T> callBack,
    T …
Run Code Online (Sandbox Code Playgroud)

.net c# generics multithreading threadpool

5
推荐指数
2
解决办法
3748
查看次数

Visual Studio:std::string 的乱码调试监视?

当我在 Visual Studio 2005 中调试 C++ 混合(托管/非托管)项目时,我经常从调试监视中获得奇怪的数据,如下所示:(
顺便说一句,变量i_processName是 a const std::string &

替代文字 http://img175.imageshack.us/img175/3561/43419953av1.jpg

请注意,该变量实际上包含有效数据 - 如果我将其打印到标准输出,则打印的字符串就好了,感谢您的询问。较简单的数据类型(例如ints)(通常?)显示其正确值。

你也遇到过这种情况吗?

这是调试时的一个主要 PITA,所以......关于如何让手表显示正确数据的任何想法,或者是什么导致了这种情况?

c++ debugging mixed-mode visual-studio

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

在Windows中调试堆栈溢出?

所以我试图调试这个奇怪的问题,其中一个进程结束而不调用一些析构函数...

在VS(2005)调试器中,当我看到这个时,我点击'Break all'并在大量消失的进程的线程的调用堆栈中查看:

闻起来像SO http://img6.imageshack.us/img6/7628/95434880.jpg

这绝对看起来像一个正在制作中的SO,这可以解释为什么这个过程运行到它的快乐的地方,而不首先包装它的行李箱.

问题是,VS调试器的调用堆栈只显示您在图像中可以看到的内容.

所以我的问题是:如何找到无限递归调用的起始位置?

我在某处读到,在Linux中你可以附加一个回调到SIGSEGV处理程序,并获得有关正在发生的事情的更多信息.

Windows上有类似的东西吗?

c++ windows stack-overflow debugging

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

获取一些数字的所有因素(迭代器摊牌:)

您将获得一个数字的所有主要因子,以及它们的多重性(最高权力).
要求是产生该数字的所有因素.

让我举个例子:

主要原因:

  • 2(电源:3)
  • 3(电源:1)

(意思是数字是 2^3 * 3^1 = 24)

预期结果是:
1,2,3,4,6,8,12,24

我正在考虑使用一些链式自定义迭代器(在C#中),每个素数因子一个,从0到该素数的幂.

你会如何实现这个?使用您的首选语言.

这是有关问题#23项目欧拉

algorithm iterator programming-languages

5
推荐指数
2
解决办法
2401
查看次数

.NET检查两个IEnumerable <T>是否具有相同的元素

可能重复:
比较两个集合是否相等

我需要验证两个IEnumerable<T>列表是否具有相同的元素,不一定是相同的顺序.

我的目标是.NET 3.5.

这是测试.问题是,应该如何HasSameElements()实施?

var l1 = new[]{1,2,3};
var l2 = new[]{3,1,2};

bool rez1 = l1.HasSameElements(l2);//should be true

var l3 = new[]{1,2,3,2};
var l4 = new[]{3,1,2,2};
bool rez2 = l3.HasSameElements(l4);//should be true

var l5 = new[]{1,2,3,2};
var l6 = new[]{1,2,3};
bool rez3 = l5.HasSameElements(l6);//should be false
Run Code Online (Sandbox Code Playgroud)

附加说明:

  • 在示例中,我使用IEnumerable,但T可以是任何东西.T必须实施IComparable吗?

  • Enumerable.SequenceEquals()本身不起作用,它期望元素的顺序相同.

  • 这是一个模板HasElements:

[只是一些占位符文本作为Markdown'代码格式'错误的解决方法]

public static class Extensions {
    public static bool HasElements(this IEnumerable<T> l1, IEnumerable<T> l2){
        throw new NotImplementedException();
    } 
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq list set

5
推荐指数
2
解决办法
6092
查看次数

在Visual Studio 2010中需要高效的黑客调试

我经常Debug -> Exceptions -> check CLR Exceptions在调试会话期间使用.有时会抛出并处理异常,但我真的想找到异常的来源.为了做到这一点,我没有看到我不关心的第一次机会异常,我启动我的应用程序,然后检查CLR例外:

在此输入图像描述

这变得非常乏味,我很想在我的VS2010工具栏切换按钮,可以让我在将只设置/复位CLR例外,而无需钥匙CTRL+ D,E,选中该复选框,然后单击确定(和然后再次执行相同的过程以关闭异常).我进入了工具栏自定义,但我只能得到一个按钮,显示"例外"对话框.这显然不如击中CTRL+ D,效率低E.

有谁知道另一种方法来添加这个?它需要一个VS插件吗?按键映射也很不错.

我从来没有在VS中使用过Macro Recorder,但也许这是一个必要的地方?

customization exception toolbar visual-studio-2010

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

Android HttpPost消息不会通过网络发送其有效负载

我正在尝试发送一个简单的字符串作为HttpPost消息的内容.

问题是,HttpPost消息的主体永远不会成为线路.(说Wireshark捕获).标题看起来很好(包括正确计算的Content-Length.

这是代码的样子:

String url = "http://1.2.3.4/resource";
HttpClient client = new DefaultHttpClient();
String cmd = "AT+AVLPOS\r\n";
StringEntity se = new StringEntity(cmd);
se.setContentType("text/plain");  

HttpPost request = new HttpPost(url);
request.setHeader("Content-Type","text/plain");
request.setEntity(se);

HttpResponse response = client.execute(request);
[...]
Run Code Online (Sandbox Code Playgroud)

字符串应该是ASCII编码的,但这是一个细节.

这是WireShark中显示的内容: - >请注意,标有+的行是发送的内容,而 - 是收到的内容.

+POST /resource HTTP/1.1
+Content-Type: text/plain
+Content-Length: 11
+Host: 1.2.3.4
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)
+Expect: 100-Continue

-HTTP/1.1 200 OK
-Content-Type: text/plain
-Transfer-Encoding: chunked

-4
-OK
Run Code Online (Sandbox Code Playgroud)

应该是显示出来的(在C#中编写了一个非常简单的控制台应用程序来执行此操作,它只是起作用):

+POST /resource HTTP/1.1
+Content-Type: text/plain
+Host: 1.2.3.4
+Content-Length: 11
+Expect: 100-continue …
Run Code Online (Sandbox Code Playgroud)

java networking android http-post

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

C#获取多维数组的类型

如何获取多维数组中最内层元素的类型?

var qq = new int[2,3]{{1,2,3}, {1,2,4}};
var t = qq.GetType().ToString();//is "System.Int32[,]"
var t2 = ??; // should be "System.Int32"
Run Code Online (Sandbox Code Playgroud)

无论数组的维数(Rank)如何,我都希望得到最里面的元素类型.

c# multidimensional-array

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