使用这样的while循环是不好的做法吗?也许最好使用秒表,或者这个解决方案有一些陷阱?
public void DoWork()
{
//do some preparation
DateTime startTime = DateTime.Now;
int rowsCount = 0;
int finalCount = getFinalCount();
do
{
Thread.Sleep(1000);
rowsCount = getRowsCount(); // gets rows count from database, rows are added by external app.
} while (rowsCount < finalCount && DateTime.Now - startTime < TimeSpan.FromMinutes(10));
}
Run Code Online (Sandbox Code Playgroud)
我看到这篇文章实现了C#Generic Timeout,但是在简单的场景中使用它太复杂了 - 你需要考虑线程的同步,是否适合中止它们等等.
我真的很困惑......但首先,让我给你一个粗略的概述.
我已经在数据库中进行了一些重组,将4个表合并为两个.所有表都有简单的数字序列作为主键.事实上,这些表非常(非常)相似.它们被分成两部分的唯一原因是基于必须导入的历史数据.没有这种分裂,就会有很多冗余,从概念上讲它是有道理的.
现在,经过大量的工作进入数据清理后,现在终于可以将它们合并,只需使用其中一个字段作为鉴别器.谈论不那么抽象,表格包含公司.他们要么是当地居民,要么不是(两个班级).它们可以通过邮政编码(鉴别字段)轻松区分.这些表是缓慢变化的维度(序列是代理键).其他两个表包含附加到这些SCD的正常数据.因此,4桌.2为本地公司,2为非本地公司.
这些表现在已经简化和合并,所以我现在只有Company和CompanyData.
为了安全起见,并且不丢失任何历史信息,我创建了两个带有新序列字段的新表.旧的序列保存10年后我意识到出了问题;)
到现在为止还挺好.
重组相当容易,重新连接正确的条目也是一个明智的选择.接下来,我需要更新与此DB接口的应用程序,这是一项更多的工作,但仍然很容易.该应用程序使用JPA,使用EclipseLink 2.0 - 如上所述 - 一个PostgreSQL 9.0数据库.
这里出现了奇怪的部分:
当我尝试插入新公司时,我收到重复的密钥错误,说明已存在给定的ID.但这应该由序列对象处理......如果不是吗?
所以我做了一些挖掘.我可以验证后续的inerts确实返回了带有递增 ID的重复键错误.这意味着序列逻辑正常.唯一的问题是当前值太低.因此,对nextval(或JPA使用的任何内容)的调用将返回已存在的ID.
我在JPA-Entity中有以下内容:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "enterprise_id_seq")
@Column(name = "id", nullable = false)
private Integer id;
Run Code Online (Sandbox Code Playgroud)
我的序列看起来像这样:
test_db=# \d enterprise_id_seq
Sequence "public.enterprise_id_seq"
Column | Type | Value
---------------+---------+---------------------
sequence_name | name | enterprise_id_seq
last_value | bigint | 19659
start_value | bigint | 1
increment_by | bigint | 1
max_value | bigint | 9223372036854775807
min_value | bigint | …Run Code Online (Sandbox Code Playgroud) 在.NET MVC3 Web应用程序的开发环境中为邮件服务生成可靠的集成测试结果的好方法是什么?电子邮件服务已经被隔离在一个界面后面,单元测试是为它编写的,但我很好奇是否有任何好的,通用的工具或策略可以让它变得简单,除了垃圾邮件一些电子邮件地址和一些完整-blown smtp服务器设置在某处.
应该易于测试的事情应该是:
- 如果设置正确,可以发送电子邮件
- 如果设置不正确,我们是否可以检测到并获得该状态.
我正在尝试更改当前如下所示的 Web 服务调用标头的 wsdl2apex 代码:
<env:Header>
<Security xmlns="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd">
<UsernameToken Id="UsernameToken-4">
<Username>test</Username>
<Password>test</Password>
</UsernameToken>
</Security>
</env:Header>
看起来像这样:
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-4" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>Test</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Test</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
一个问题是我无法弄清楚如何更改元素的命名空间(或者即使它们的名称很重要)。第二个问题是将 Type 属性放在 Password 元素上。
任何人都可以提供任何可能有帮助的信息吗?
谢谢
所以我开始使用cocoa和ObjC.我试图在oreilly中运行目标C/cocoa中的示例.我的applicationDidFinishLaunching似乎没有被调用.我认为这与我在IB中挂钩所有内容的方式存在问题.
标题:http://pastebin.com/6AdQt1uN
课程:http://pastebin.com/VCQWJWkj
IB:http://img265.imageshack.us/img265/4616/screenshot20110216at111.png
有没有人看到我的未经训练的眼睛没有明显的东西?
我已经构建了一个使用两个COM服务器dll的COM客户端应用程序; 我希望这个应用程序在没有COM注册的情况下运行 - 即:winsxs/.manifests
当我尝试从客户端应用程序创建COM对象的实例时,我得到了一个(...几乎可以预期......)"Class not registered"消息.
我之前已经成功完成了这种配置,但我无法弄清楚为什么这个配置失败了.
这里有一些细节:
我有的COM对象:
-
[
object,
uuid(262D00FB-3B9F-4A76-98FC-3051FDCAF0A6),
dual,
nonextensible,
helpstring("IDialogManager Interface"),
pointer_default(unique)
]
interface IDialogManager : IDispatch{
};
[
uuid(58562535-BCA5-4D04-BB92-78F90EDA201E),
//...
]
dispinterface _IDialogManagerEvents
{
};
[
uuid(D599D3F0-A4D1-44A7-87A9-16032CC613CA),
//...
]
coclass DialogManager
{
[default] interface IDialogManager;
[default, source] dispinterface _IDialogManagerEvents;
};
Run Code Online (Sandbox Code Playgroud)
-
-
[
object,
uuid(2A183A2E-A620-4E00-B657-C9D2E59201D4),
nonextensible,
helpstring("ICadWizardsManager Interface"),
pointer_default(unique)
]
interface ICadWizardsManager : IDispatch{
};
[
object,
uuid(FE97F3FB-8930-43BC-947D-64C90F45A071),
nonextensible,
helpstring("ICadWizard Interface"),
pointer_default(unique)
]
interface ICadWizard …Run Code Online (Sandbox Code Playgroud) 我有一个asp.net页面,其中包含嵌入了一些数据的Iframe和一个ImageButton.在ImageButton单击事件(服务器端)我有Response.Redirct:
Response.Redirect("results.aspx");
Run Code Online (Sandbox Code Playgroud)
这总是在iframe中打开results.aspx.我希望results.aspx应该始终在父窗口中打开.到目前为止我尝试了以下但是没有效果:
Response.Redirect("<script language='javascript'>self.parent.location='results.aspx';</script>");
Response.Redirect("javascript:parent.change_parent_url('results.aspx');");
Run Code Online (Sandbox Code Playgroud)
作为Rifk的回应,我添加了ClientScriptManager..aspx有这个条目:
<asp:ImageButton ID="ImageButton_ok" ImageUrl="~/images/ok.gif"
OnClick="btnVerify_Click" OnClientClick="ValidateFields()"
runat="server" />
Run Code Online (Sandbox Code Playgroud)
Page_Load()中的代码:
ClientScriptManager cs = Page.ClientScript;
StringBuilder myscript = new StringBuilder();
myscript.Append("<script type=\"text/javascript\"> function ValidateFields() {");
myscript.Append("self.parent.location='default.aspx';} </");
myscript.Append("script>");
cs.RegisterClientScriptBlock(this.GetType(), "ButtonClickScript", myscript.ToString());
Run Code Online (Sandbox Code Playgroud)
btnVerify_Click具有主要的业务逻辑.如果我的业务逻辑失败,我将如何停止OnClientClick()触发?或者,如何在成功执行服务器端代码时触发?
试图写一个布尔方法,告诉某人是否是某人的后裔......但似乎无法做到这一点.当然,如果它是一个孩子......或者是孩子的后代,那么这个物体就是后代.
public boolean isDescendant(member x){
if (children.contains(x)){
return true;
}
else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但我在哪里或如何插入:
for (int i = 0; i < children.size(); i++){
isDescendant(children.get(i));
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我现在一直在研究Java,我已经准备好尝试构建一些东西了.我想我对如何构建简单部件有基本的了解,但我很难规划出我的项目.我希望你们能告诉我我需要做些什么.
我正在创建一个工作的应用程序.我在ATM业务工作,我们为所有ATM模型提供技术支持.因此,我们有一个主要的atm错误代码列表,它们适用的模型,描述和解决方案.
从应用程序我想通过ATM制造商 - >模型 - >可供选择的错误代码列表进行搜索.和可通过错误代码搜索.
我不确定的是如何保存如此庞大的代码列表.我的格式是这样的:("Hyosung","1000","20001","无法检测盒式磁带","拆卸和更换盒式磁带 - 检查左侧内壁上的微动开关")
(制造商,型号,代码,描述,解决方案)
因此,根据用户选择的搜索方式,它可能会导致所有错误
可能有1000个错误代码.是否最好将其保存到应用程序可以访问的文本文件中?你们如何管理错误代码?
以下代码给出了一个错误(它是T-SQL存储过程的一部分):
-- Bulk insert data from the .csv file into the staging table.
DECLARE @CSVfile nvarchar(255);
SET @CSVfile = N'T:\x.csv';
BULK INSERT [dbo].[TStagingTable]
-- FROM N'T:\x.csv' -- This line works
FROM @CSVfile -- This line will not work
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
Run Code Online (Sandbox Code Playgroud)
错误是:
Incorrect syntax near the keyword 'with'.
Run Code Online (Sandbox Code Playgroud)
如果我更换:
FROM @CSVfile
Run Code Online (Sandbox Code Playgroud)
有:
FROM 'T:\x.csv'
Run Code Online (Sandbox Code Playgroud)
......然后它很好用.
c# ×3
java ×2
.net ×1
android ×1
apex-code ×1
asp.net ×1
asp.net-mvc ×1
c++ ×1
cocoa ×1
com ×1
eclipselink ×1
email ×1
header ×1
iframe ×1
imagebutton ×1
jpa ×1
macos ×1
objective-c ×1
postgresql ×1
recursion ×1
regfreecom ×1
salesforce ×1
soap ×1
sql ×1
sxs ×1
timeout ×1
winsxs ×1
ws-security ×1