我正在尝试使用onblur事件关闭窗口.它在IE,Firefox和Safari中运行良好,但事件不会在chrome中触发.是铬的错误或我的错误
我有一个SQL语句,我正在通过OleDb执行,语句是这样的:
INSERT INTO mytable (name, dept) VALUES (@name, @dept);
Run Code Online (Sandbox Code Playgroud)
我正在向OleDbCommand添加参数,如下所示:
OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;
OleDbParameter Parameter1 = new OleDbParameter();
Parameter1.OleDbType = OleDbType.VarChar;
Parameter1.ParamterName = "@name";
Parameter1.Value = "Bob";
OleDbParameter Parameter2 = new OleDbParameter();
Parameter2.OleDbType = OleDbType.VarChar;
Parameter2.ParamterName = "@dept";
Parameter2.Value = "ADept";
Command.Parameters.Add(Parameter1);
Command.Parameters.Add(Parameter2);
Run Code Online (Sandbox Code Playgroud)
我得到的问题是,如果我添加参数以反过来命令,那么列将填充错误的值(即名称在dept列中,反之亦然)
Command.Parameters.Add(Parameter2);
Command.Parameters.Add(Parameter1);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果参数值只是按照添加命令的顺序插入到表中,参数名称的重点是什么?参数名称似乎多余?
我阅读了Cwalina的书(关于.NET应用程序的开发和设计的建议).
他说,一个好的设计结构必须小于16个字节(出于性能目的).
这究竟是为什么?
而且(更重要的是)如果我在Windows 7 x64下在Core i7上运行我的.NET 3.5(很快将是.NET 4.0)64位应用程序(这是基于CPU/OS的限制),我可以拥有更高效率的结构吗?
只是再次强调 - 我需要尽可能高效的结构.我试着一直把它放在堆栈上.该应用程序是多线程的,并且以亚毫秒为间隔运行,结构的当前大小为64字节.
我一直在完成清理控制器代码的过程,以使每个操作都可测试.一般来说,这并不是太困难 - 我们有机会使用固定对象,比如说FormsAuthentication,我们通常会在适当的时候引入某种形式的包装器并且是我们喜欢的方式.
由于没有特别与此对话密切相关的原因,在处理HttpContext的使用时,我们决定使用新创建的HttpContextWrapper类而不是发明自己开发的东西.我们介绍的一件事是能够交换HttpContextWrapper(比如说,用于单元测试).这完全受到Oren Eini使用DateTimes处理单元测试的方式的启发(参见文章,我们也使用的模式)
public static class FooHttpContext
{
public static Func<HttpContextWrapper> Current = ()
=> new HttpContextWrapper(HttpContext.Current);
public static void Reset()
{
Current = () => new HttpContextWrapper(HttpContext.Current);
}
}
Run Code Online (Sandbox Code Playgroud)
没什么特别的花哨.它在我们的控制器代码中运行得很好.当我们去编写单元测试时,就会出现这个问题.我们使用Moq作为我们的模拟框架,但是唉
var context = new Mock<HttpContextWrapper>()
Run Code Online (Sandbox Code Playgroud)
因为HttpContextWrapper没有无参数的ctor,所以会中断.作为ctor参数需要什么?一个HttpContext对象.所以我发现自己陷入困境22.
我正在使用规定的方法来解耦HttpContext - 但我无法模拟一个值,因为原始的HttpContext对象是密封的,因此很难测试.我可以映射HttpContextBase,它们都来自 - 但这并没有真正让我得到我想要的东西.我是否只是忽略了HttpContextWrapper的某个方面?
编辑以澄清意图
我们找到了解决问题的方法 - 但我想我们最终要解决的问题是HttpContextWrapper给表带来了什么价值?我不怀疑某个人完全有一个哈哈!它的时刻,但它不会来找我.我在这里看到的大多数帖子都在可测试性方面进行了讨论 - 但是我自己的经验让我相信它并没有带来太大的影响.除非我们做错了.(完全可能).
有没有g ++选项可以用NULL const char*检测std :: string的不正确初始化?
我正在将一些int字段转换为std :: string,即:
struct Foo
{
int id;
Foo() : id(0) {}
};
Run Code Online (Sandbox Code Playgroud)
...转换成:
struct Foo
{
std::string id;
Foo() : id(0) {} //oooops!
};
Run Code Online (Sandbox Code Playgroud)
我完全忽略了使用0和g ++初始化错误的'id'初始化时没有给我任何警告.在运行时检测到此错误(std :: string构造函数抛出异常),但我真的想在编译时检测到这些东西.有什么办法吗?
我有一个MySql数据库,存储我插入的每个记录的时间戳.我将该时间戳作为字符串添加到我的Android应用程序中.我的数据库位于具有CST TimeZone的服务器上.我想将该CST时间戳转换为Android设备的本地时间.
有人可以帮忙吗?
我最近问了一个关于并行编程算法的问题,由于我沟通意图的能力很差,因此关闭得非常快:
我最近也问了另一个问题,具体来说:
另一个问题是关于map reduce,以及mapreduce是否是并行编程中某些其他概念的更具体版本.这个问题(关于一个有用的并行编程算法)更多的是关于并行编程的整个算法系列.你不得不原谅我,因为我对并行编程很陌生,所以也许MapReduce或更通用的mapreduce形式是"唯一的"并行编程结构,可用,在这种情况下,我为我的无知道歉.
在软件会议中进行讨论之后,我已经着手查明是否删除带有plain的动态分配的primitives数组delete
会导致内存泄漏.
我编写了这个小程序并使用在Windows XP上运行的visual studio 2008进行编译:
#include "stdafx.h"
#include "Windows.h"
const unsigned long BLOCK_SIZE = 1024*100000;
int _tmain()
{
for (unsigned int i =0; i < 1024*1000; i++)
{
int* p = new int[1024*100000];
for (int j =0;j<BLOCK_SIZE;j++) p[j]= j % 2;
Sleep(1000);
delete p;
}
}
Run Code Online (Sandbox Code Playgroud)
我比使用任务管理器监视我的应用程序的内存消耗,令人惊讶的是内存被正确分配和释放,分配的内存没有像预期的那样稳定增加
我修改了我的测试程序来分配一个非原始类型的数组:
#include "stdafx.h"
#include "Windows.h"
struct aStruct
{
aStruct() : i(1), j(0) {}
int i;
char j;
} NonePrimitive;
const unsigned long BLOCK_SIZE = 1024*100000;
int _tmain()
{
for (unsigned int …
Run Code Online (Sandbox Code Playgroud) 我想就php/mysql连接的长期问题向你提供帮助.
每次执行"SHOW PROCESSLIST"命令时,它都会向我显示从我们的5个Web服务器出现的大约400个空闲(状态:睡眠)连接到数据库服务器.
从来没有出现太多问题(我没有找到快速的解决方案),直到最近流量数量增加,从那时起MySQL反复报告"到多个连接"的问题,即使这样的350多个连接处于"睡眠"状态.即使存在与同一服务器的睡眠连接,服务器也无法获得MySQL连接.
重新启动Apache服务器时,所有这些连接都会消失.
用于创建数据库连接的PHP代码使用普通的"mysql"模块,"mysqli"模块,PEAR :: DB和Zend Framework Db适配器.(不同的项目).没有项目使用持久连接.
提高连接限制是可能的,但似乎不是一个好的解决方案,因为它现在是450,并且一直只有20-100个"真实"连接.
我的问题:
为什么在睡眠状态下有这么多连接,我该如何预防呢?
- 更新:
一次运行的Apache请求数永远不会超过50个并发请求,所以我猜关闭连接有问题,或者apache保持端口打开而没有连接phpscript或者什么(?)
my.cnf万一有用:
innodb_buffer_pool_size = 1024M
max_allowed_packet = 5M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 8M
query_cache_size = 512M
myisam_sort_buffer_size = 128M
max_connections = 450
thread_cache = 50
key_buffer_size = 1280M
join_buffer_size = 16M
table_cache = 2048
sort_buffer_size = 64M
tmp_table_size = 512M
max_heap_table_size = 512M
thread_concurrency = 8
log-slow-queries = /daten/mysql-log/slow-log
long_query_time = 1
log_queries_not_using_indexes
innodb_additional_mem_pool_size = 64M
innodb_log_file_size = 64M
innodb_log_buffer_size = …
Run Code Online (Sandbox Code Playgroud) 我需要决定使用哪个配置框架.目前我在考虑使用属性文件和XML文件.我的配置需要有一些原始分组,例如XML格式将是这样的:
<configuration>
<group name="abc">
<param1>value1</param1>
<param2>value2</param2>
</group>
<group name="def">
<param3>value3</param3>
<param4>value4</param4>
</group>
</configuration>
Run Code Online (Sandbox Code Playgroud)
或属性文件(类似于log4j.properties):
group.abc.param1 = value1
group.abc.param2 = value2
group.def.param3 = value3
group.def.param4 = value4
Run Code Online (Sandbox Code Playgroud)
我需要双向(读写)配置库/框架.好的功能是 - 我可以把不同的配置组读出来作为不同的对象,所以我可以稍后将它们传递到不同的地方,例如 - 读取属于组"abc"作为一个对象和"def"作为另一个对象的所有内容.如果那是不可能的,我当然可以在应用程序初始化部分自己将单个配置对象拆分为较小的配置对象.
哪种框架最适合我?
c# ×3
c++ ×2
java ×2
.net ×1
abstraction ×1
android ×1
class-design ×1
frameworks ×1
g++ ×1
mocking ×1
mysql ×1
oledb ×1
oledbcommand ×1
onblur ×1
php ×1
properties ×1
stdstring ×1
struct ×1
timestamp ×1
timezone ×1
xml ×1