我有一个带有链接服务器的SQLServer到另一个其他数据库.我在该链接服务器上创建了一个视图
create view vw_foo as
select
[id],
[name]
from LINKEDSERVER.RemoteDatabase.dbo.tbl_bar
Run Code Online (Sandbox Code Playgroud)
我想谈谈以下内容
alter table [baz]
add foo_id int not null
go
alter table [baz] with check
add constraint [fk1_baz_to_foo]
foreign key([foo_id])
references [dbo].[vw_foo] ([id])
go
Run Code Online (Sandbox Code Playgroud)
但是这会产生错误:"外键'fk1_baz_to_foo'引用对象'dbo.vw_foo',它不是用户表."
如果我尝试使用以下内容将外键直接放在表上
alter table [baz] with check
add constraint [fk1_baz_to_bar]
foreign key([foo_id])
references LINKEDSERVER.RemoteDatabase.dbo.tbl_bar ([id])
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
对象名称"LINKEDSERVER.RemoteDatabase.dbo.tbl_bar"包含的前缀数量超过最大数量.最大值为2.
有什么方法可以达到同样的效果吗?
我正在寻找一段代码,其行为有点像单身但不是(因为单身人士很糟糕:)我正在寻找的必须达到以下目标:
示例代码:
private int i = runOnce(5); // Set i to 5
// Create the connection once and cache the result
private Connection db = runOnce(createDBConnection("DB_NAME"));
public void m() {
String greet = runOnce("World");
System.out.println("Hello, "+greet+"!");
}
Run Code Online (Sandbox Code Playgroud)
请注意,这些字段不是静态的; 只有表达式的RHS(右侧)在某种程度上......"静态".测试应该能够为注入新的价值观i和greet暂时的.
另请注意,这段代码概述了我打算如何使用这个新代码.随意用任何东西替换runOnce()或将其移动到其他地方(构造函数,可能,或init()方法或getter).但LOC越少越好.
一些背景资料:
我不是在寻找Spring,我正在寻找一段可用于最常见情况的代码:你需要实现一个接口,除了你想要的测试之外,不会有第二个实现传递模拟对象.另外,Spring失败了#2,#3和#5:你需要学习配置语言,你必须在某处设置应用程序上下文,它需要一个XML解析器而且它不是本地的(信息遍布各处).
由于#5,全局配置对象或工厂不符合要求.
static final因为#4而出局(最终无法改变).static因为类加载器问题而闻起来,但你可能需要它runOnce().我只是希望能够在表达式的LHS中避免它.
一种可能的解决方案可能是使用具有默认设置的ehcache,该设置将返回相同的对象.由于我可以将内容放入缓存中,因此也可以随时覆盖该值.但也许有一个比ehcache更简洁/简单的解决方案(它还需要一个XML配置文件等).
[编辑]我想知道为什么这么多人投票.这是一个有效的问题,用例很常见(至少在我的代码中).所以,如果你不理解这个问题(或背后的原因),或者你没有答案或者你不关心,为什么还要投票呢?:/
[编辑2]如果你看看Spring的应用程序上下文,你会发现超过99%的bean只有一个实现.你可以拥有更多,但在实践中,你根本就没有.因此,我不是分离接口,实现和配置,而是查看只有一个实现(在最简单的情况下),current()方法和一行或两行聪明的代码来初始化current()的结果的东西.一次(当它第一次被调用时)但同时允许覆盖结果(线程安全,如果可能的话).可以把它想象成一个原子"if(o == null)o = new O(); return o"你可以覆盖o.也许AtomicRunOnceReference类是解决方案.
现在,我只是觉得我们每天都拥有和使用的东西并不是最佳的,有一个令人困惑的解决方案会让我们大家都低头说"就是这样".就像我们几年前Spring出现时所感受到的那样,我们意识到我们所有单身人士问题的来源以及如何解决这些问题.
我们有一个带有Oracle后端的系统,我们可以访问它(虽然可能不是管理访问权限)和我们没有源代码的前端.数据库非常庞大,不易理解 - 我们没有文档.我对甲骨文一般也不是特别了解.
前端的一个方面向数据库查询特定数据集并显示它.我们需要确定正在进行的查询,以便我们可以在没有前端的情况下复制和自动化它(例如,通过定期生成csv文件).
您将使用哪些方法来确定检索此数据集所需的SQL?
目前我倾向于使用EeePC,Wireshark和集线器(在客户端机器上安装Wireshark可能无法实现),但我很想听到任何其他想法以及是否有人能想到这个特定的任何陷阱做法.
我在文件中有以下文字
23456789
Run Code Online (Sandbox Code Playgroud)
当我尝试使用命令替换上面的文本
1,$s/\(\d\)\(\d\d\d\)\(\d\d\)*\>/\3\g
Run Code Online (Sandbox Code Playgroud)
我到了89.不应该6789吗?任何人都可以告诉我它为什么89.
我想从我工作的LDAP服务器上传用户列表,以作为公司目录上传到我们的wiki.如何使用Perl从LDAP服务器下载用户列表?
谢谢.
我一直在努力解决问题,也许你们可以指出我正确的方向.
我正试图通过https连接在网络服务器上对pdf进行数字签名.
在页面加载时我正在这样做:
HttpClientCertificate cs = Request.ClientCertificate;
X509Certificate card = new X509Certificate(cs.Certificate);
Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] { cp.ReadCertificate(card.GetRawCertData())};
Run Code Online (Sandbox Code Playgroud)
我在最后一行代码中收到错误"m_safeCertContext是一个无效的句柄".
请注意:
[System.Security.SecurityCritical, System.Security.SecurityTreatAsSafe]属性添加到所有方法甚至类中以查看它是否可行...没有这样的运气.任何人都可以给我一个暗示吗?
WPF与WinForms.您如何看待Windows Forms平台的未来?
我已经为注册活动做了一个小应用程序.用户输入他们的数据并单击"登录".
现在有时人们在数据库中是双倍的,完全相同的数据相互之后非常快地插入2次.这只能意味着有人点击了按钮两次,这导致了两个帖子发生.
这是常见的网络问题,因为信用卡应用和论坛应用经常说:"点击一次就够了!".
我猜您可以通过检查完全相同的数据来查看帖子是否唯一,但我想知道是否还有其他方法.
这个过程不计入ASP.NET webforms,因为POST并不重要.
我需要为与命令行应用程序紧密交互的应用程序编写组件.命令行应用程序询问一系列问题,执行一些计算,然后终止(我需要检测).本质上,我想在包装类中包含这种交互.
过去有没有人取得过相似的成绩?如果是这样,你是怎么做到的?您是否注意到一个模式,或者可能在类中使用一些好的构建?干杯!
c# ×2
sql ×2
.net-3.5 ×1
foreign-keys ×1
java ×1
ldap ×1
networking ×1
oracle ×1
perl ×1
post ×1
qa ×1
regex ×1
singleton ×1
sql-server ×1
unit-testing ×1
vim ×1
wiki ×1
windows ×1
winforms ×1
wpf ×1