问题列表 - 第33486页

在SQL Server中存储URL

使用SQL Server我想在表中存储URL列表.另外,我要求我不希望任何URL出现在表中一次.

这表明我想将URL作为表的主键,但由于URL的长度,这在SQL Server中是不可能的.SQL Server有一个约束,即可以索引的字符字段的最大长度是900个字符,而根据规范的URL可能是无限的,并且实际上IE支持最多2k的URL,因此900太短.

我的下一个想法是使用HashBytes函数创建URL的哈希值,以用作要编制索引的列.在这种情况下,可能存在两个不同的URL可能散列到相同的值(不太可能但可能),因此我不能使用唯一索引.

针对该表的大部分处理将是插入,这是我想要优化的性能.

我的想法是拥有一个URL列和一个Hashvalue列,并在Hashvalue上创建一个非唯一索引.

然后我将创建一个Trigger for Insert,如果插入的Hashvale =现有的Hashvalue和Inserted URL =现有的URL,它将回滚插入.我希望查询优化器会使用索引来首先找到哈希值匹配的记录,然后不必进行全表扫描来尝试匹配URL.

我是在正确的轨道上还是有更好的方法来解决这个问题?

sql-server

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

如何强制mercurial接受空提交

我正在尝试转换SVN repo hgsvn并且我有一些提交,其中SVN属性被修改,但由于Mercurial不使用它们,它将此视为空提交并中止.有没有办法强制这个hg commit接受不改变任何东西的提交?

我不熟悉内容,hgsvn以破解它跳过空提交.

svn mercurial hgsvn

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

是控制器异步的后台工作者?

在asp.net mvc 2控制器中,我有以下代码:

using (BackgroundWorker worker = new BackgroundWorker())
                        {
                            worker.DoWork += new DoWorkEventHandler(blah);
                            worker.RunWorkerAsync(var);
                        }
Run Code Online (Sandbox Code Playgroud)

我的问题是:这个代码是异步的,这意味着它会启动一个新线程,并且当'blah'并行执行时,控制器会返回视图吗?

如果没有,我将如何实现这些结果?

c# asp.net-mvc asp.net-mvc-2

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

等价的隐含算子:它们为什么合法?

更新!

请参阅我对以下C#规范的一部分的剖析; 我想我必须遗漏一些东西,因为对我而言,我在这个问题中描述的行为实际上违反了规范.

更新2!

好的,经过进一步的反思,并根据一些评论,我想我现在明白发生了什么.规范中的"源类型"一词指的是从中转换的类型- 即,Type2在我下面的例子中 - 这只是意味着编译器能够将候选缩小到两个定义的运算符(因为Type2它是源类型)对彼此而言).但是,它无法进一步缩小选择范围.所以规范中的关键词(适用于这个问题)是"源类型",我之前误解(我认为)是指"声明类型".


原始问题

说我定义了这些类型:

class Type0
{
    public string Value { get; private set; }

    public Type0(string value)
    {
        Value = value;
    }
}

class Type1 : Type0
{
    public Type1(string value) : base(value) { }

    public static implicit operator Type1(Type2 other)
    {
        return new Type1("Converted using Type1's operator.");
    }
}

class Type2 : Type0
{
    public Type2(string value) : base(value) { }

    public …
Run Code Online (Sandbox Code Playgroud)

.net c# implicit ambiguity implicit-conversion

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

为什么C++不允许继承友谊?

为什么友谊至少可以在C++中继承?由于显而易见的原因,我认为传递性和反身性是被禁止的(我说这只是为了避开简单的常见问题解答引用答案),但缺乏一些令virtual friend class Foo;我困惑的东西.有谁知道这个决定背后的历史背景?友谊真的只是一个有限的黑客,从那以后,它已经进入一些不起眼的可敬用途吗?

编辑澄清:我说的是以下场景,而不是 A的孩子接触B或B及其子女的情况.我还可以想象可以选择授予访问朋友功能等的覆盖的权限.

class A {
  int x;
  friend class B;
};

class B {
  // OK as per friend declaration above.
  void foo(A& a, int n) { a.x = n; }
};

class D : public B { /* can't get in A w/o 'friend class D' declaration. */ };
Run Code Online (Sandbox Code Playgroud)

接受的答案:正如Loki所说,通过在受限制的基类中创建受保护的代理函数,可以或多或少地模拟效果,因此不需要向类或虚方法层次结构授予友谊.我不喜欢需要样板代理(有条件的基础有效地成为),但我认为这被认为比大多数时候更容易被滥用的语言机制更可取.我想这可能是我购买和阅读Stroupstrup的C++的设计和演变的时候了,我已经看到这里有足够多的人推荐,以便更好地洞察这些类型的问题......

c++ inheritance language-design friend

86
推荐指数
4
解决办法
5万
查看次数

WP7 ListBox项目填充ListBox的宽度

我试图让ListBox中的Items跨越ListBox的整个宽度.我发现了几个处理Horizo​​ntalContentAlignment ="Stretch"的帖子,但我无法让它在我的WP7应用程序中运行.这是我的ListBox:

<ListBox Margin="8" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Collection}" >
    <ListBox.ItemTemplate>
        <DataTemplate> 
            <Border BorderBrush="Black" CornerRadius="3" Background="#FFE88D34" 
                BorderThickness="1" HorizontalAlignment="Stretch" > 
                <Grid Background="Transparent" HorizontalAlignment="Stretch" > 
                    <Grid.ColumnDefinitions> 
                        <ColumnDefinition Width="*" /> 
                    </Grid.ColumnDefinitions> 
                    <TextBlock  
                        Grid.Column="0" HorizontalAlignment="Stretch" 
                        Margin="2"                                    
                        FontSize="10" 
                        Text="{Binding Property1}"/> 
                </Grid> 
             </Border> 
        </DataTemplate> 
    </ListBox.ItemTemplate>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我试图让橙色边框跨越列表框的整个宽度,以便所有列表项的大小相同,而不仅仅是TextBlock中文本的大小.

listbox datatemplate windows-phone-7

5
推荐指数
3
解决办法
7794
查看次数

如何在C++中抽象出重复的try catch模式

我有一个模式,重复几个成员函数,如下所示:

int myClass::abstract_one(int sig1)
{
  try {
    return _original->abstract_one(sig1);
  } catch (std::exception& err) {
    handleException(err);
  } catch (...) {
    handleException();
  }
}

bool myClass::abstract_two(int sig2)
{
  try {
    return _original->abstract_two(sig2);
  } catch (std::exception& err) {
    handleException(err);
  } catch (...) {
    handleException();
  }
}

[...]

int myClass::abstract_n(bool sig3a, short sig3b)
{
  try {
    return _original->abstract_n(sig3a, sig3b);
  } catch (std::exception& err) {
    handleException(err);
  } catch (...) {
    handleException();
  }
}
Run Code Online (Sandbox Code Playgroud)

其中抽象一个到n是纯虚拟抽象接口用于其的方法myClass_original是具体实现.

我不喜欢这个模式在代码中重复,并希望找到一种方法来消除重复try/ catch模式和代码作为单个抽象,但我想不出一个在没有宏的情况下在C++中执行此操作的好方法.我认为有一种方法可以让模板更好地完成这项工作.

请建议一种简洁的方法来重构此代码以抽象出重复的模式.

c++ refactoring templates exception

22
推荐指数
2
解决办法
6317
查看次数

我可以在端口443上安全地运行Tomcat,在8080上安全地运行Tomcat

让我解释一下我的情况.

目前,我在Tomcat 6上运行了很多应用程序,默认端口为8080.

我刚刚创建了一些需要登录的应用程序.我将购买一个SSL证书来安装在这台服务器上.

我不喜欢使用端口8443的想法,因为它使URL更复杂.如果我在端口80上运行Tomcat,我必须更改几十个链接,我必须以root身份运行Tomcat(而不是tomcat).

在端口8080上运行不安全的应用程序但在端口443上运行安全性是否有任何问题?

我想我的设置会有如下所示的网址:

http://mydomain.com:8080/report/controller?id=weather

https://mydomain.com/secure/controller?id=profile

这可能吗?

java ssl tomcat ssl-certificate tomcat6

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

ruby ping for 1.9.1

我想在我的ruby代码中ping一个站点,看到net-ping是一个很好的库.不幸的是,当我尝试gem安装net-ping时出现以下错误:

C:> gem install net-ping
错误:安装net-ping时出错:
win32-open3要求Ruby版本<1.9.0.

经过进一步的研究,我发现net-ping还没有用于1.9.X. 有没有人有一个很好的代码,他们愿意分享.

ruby

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

AfterPublish目标不起作用

发布我的Web应用程序项目后,世界上最简单的任务(见下文)没有被执行.知道为什么吗?

<Target Name="AfterPublish">
  <Copy SourceFiles="C:\A.txt" DestinationFiles="C:\B.txt" />
</Target>
Run Code Online (Sandbox Code Playgroud)

msbuild publish task

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