使用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.
我是在正确的轨道上还是有更好的方法来解决这个问题?
我正在尝试转换SVN repo hgsvn并且我有一些提交,其中SVN属性被修改,但由于Mercurial不使用它们,它将此视为空提交并中止.有没有办法强制这个hg commit接受不改变任何东西的提交?
我不熟悉内容,hgsvn以破解它跳过空提交.
在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#规范的一部分的剖析; 我想我必须遗漏一些东西,因为对我而言,我在这个问题中描述的行为实际上违反了规范.
好的,经过进一步的反思,并根据一些评论,我想我现在明白发生了什么.规范中的"源类型"一词指的是从中转换的类型- 即,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) 为什么友谊至少可以在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++的设计和演变的时候了,我已经看到这里有足够多的人推荐,以便更好地洞察这些类型的问题......
我试图让ListBox中的Items跨越ListBox的整个宽度.我发现了几个处理HorizontalContentAlignment ="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中文本的大小.
我有一个模式,重复几个成员函数,如下所示:
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++中执行此操作的好方法.我认为有一种方法可以让模板更好地完成这项工作.
请建议一种简洁的方法来重构此代码以抽象出重复的模式.
让我解释一下我的情况.
目前,我在Tomcat 6上运行了很多应用程序,默认端口为8080.
我刚刚创建了一些需要登录的应用程序.我将购买一个SSL证书来安装在这台服务器上.
我不喜欢使用端口8443的想法,因为它使URL更复杂.如果我在端口80上运行Tomcat,我必须更改几十个链接,我必须以root身份运行Tomcat(而不是tomcat).
在端口8080上运行不安全的应用程序但在端口443上运行安全性是否有任何问题?
我想我的设置会有如下所示的网址:
这可能吗?
我想在我的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. 有没有人有一个很好的代码,他们愿意分享.
发布我的Web应用程序项目后,世界上最简单的任务(见下文)没有被执行.知道为什么吗?
<Target Name="AfterPublish">
<Copy SourceFiles="C:\A.txt" DestinationFiles="C:\B.txt" />
</Target>
Run Code Online (Sandbox Code Playgroud) c# ×2
c++ ×2
.net ×1
ambiguity ×1
asp.net-mvc ×1
datatemplate ×1
exception ×1
friend ×1
hgsvn ×1
implicit ×1
inheritance ×1
java ×1
listbox ×1
mercurial ×1
msbuild ×1
publish ×1
refactoring ×1
ruby ×1
sql-server ×1
ssl ×1
svn ×1
task ×1
templates ×1
tomcat ×1
tomcat6 ×1