小编bal*_*pha的帖子

SQLite中的外键优化

我知道SQLite本身并不强制执行外键,但这不是我主要关注的问题.问题是:如果我宣布

CREATE TABLE invoice (
  invoiceID INTEGER PRIMARY KEY,
  clientID INTEGER REFERENCES client(clientID),
  ...
  )
Run Code Online (Sandbox Code Playgroud)

sqlite至少会使用clientID是外键的信息来优化查询并自动索引invoice.clientID,还是这个约束是真正的无操作?

sqlite indexing foreign-keys query-optimization

18
推荐指数
2
解决办法
7046
查看次数

pylint无法识别某些标准库

我正在使用pylint + pydev,python 2.6.我有一个只有这行代码的模块

from email import Message
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试运行此模块时,它运行正常.但是pylint报告错误:

ID: E0611 No name 'Message' in module 'email'
Run Code Online (Sandbox Code Playgroud)

虽然它存在......任何想法为什么?

python email import pylint pydev

16
推荐指数
2
解决办法
7002
查看次数

SQL Server是否保证顺序插入标识列?

换句话说,以下"光标"方法是否有效:

  1. 从DB检索行
  2. 保存返回记录中的最大ID以供日后使用,例如在 LastMax
  3. 后来, "SELECT * FROM MyTable WHERE Id > {0}", LastMax

为了使其工作,我必须确保我在步骤1中没有得到的每一行都有一个大于的Id LastMax.这是保证,还是我可以遇到奇怪的竞争条件?

sql-server identity-column sql-server-2008

13
推荐指数
2
解决办法
5458
查看次数

在聚焦窗口时更改窗口标题在Chrome中不起作用

我(ab)使用文档标题作为某种通知区域.如果有问题的选项卡/窗口在我想要通知用户某事时没有焦点,我会更改窗口标题以包含一些通知.

当窗口/选项卡重新聚焦时,我想删除通知,即将标题重置为标准.但是,此重置有时在Chrome中不起作用.

当我来自不同的窗口时,标题会正确更新,但是当我来自同一窗口中不同选项卡时,它不会.

我找到了一个解决方法(我会将其作为答案发布),但请分享您可能需要解决的任何其他想法.

javascript google-chrome focus

11
推荐指数
1
解决办法
2786
查看次数

全局正则表达式匹配超时适用于控制台应用程序,但不适用于ASP.NET MVC应用程序

我正在尝试使用.NET 4.5的新正则表达式匹配超时,特别是AppDomain.CurrentDomain.SetData具有"REGEX_DEFAULT_MATCH_TIMEOUT"属性的全局变体via (将您传递TimeSpan给正则表达式构造函数的变体工作正常).

当我使用这个main方法创建一个新的控制台应用程序:

static void Main(string[] args)
{
    AppDomain.CurrentDomain.SetData("REGEX_DEFAULT_MATCH_TIMEOUT",
        TimeSpan.FromSeconds(3));

    var m = System.Text.RegularExpressions.Regex.Match(
        "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "^(x+x+)+y$");
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作:三秒后,它会抛出一个RegexMatchTimeoutException.

但是,如果我创建一个空的MVC 4应用程序,请添加一个HomeController和此操作方法:

public ActionResult Index()
{
    AppDomain.CurrentDomain.SetData("REGEX_DEFAULT_MATCH_TIMEOUT",
        TimeSpan.FromSeconds(3));

    var m = System.Text.RegularExpressions.Regex.Match(
        "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "^(x+x+)+y$");

    return View();
}
Run Code Online (Sandbox Code Playgroud)

并且访问http://localhost:XXXXX/没有异常被抛出并且匹配尝试继续.(如果你等待足够长的时间,它会最终完成,然后抱怨缺少的观点.这需要veeery长虽然).

调用SetDataGlobal.asaxApplication_Start(),而不是控制操作中不会使超时要么发生.

.net regex asp.net-mvc appdomain

11
推荐指数
1
解决办法
618
查看次数

简单的非基于Web的错误跟踪器

这里有一大堆半问题,甚至还有更多关于寻找bug追踪器的人的答案.然而,所有这些(我发现)似乎都是基于网络的解决方案.由于我正在开发一个我不想建立Web/DB服务器的本地项目,而且我也不想使用托管跟踪器,我正在寻找在本地运行的东西.

  • 非常喜欢开源
  • 纯Python或(至少)Windows可执行文件
  • 不需要数据库服务器(sqlite显然很好)
  • 不一定要花哨,只需要基本的bug /问题跟踪功能; 比我当前的TODO文本文件或Excel表格略多一点.

有什么建议?

python windows bug-tracking non-web

10
推荐指数
3
解决办法
8022
查看次数

在进行TDD时要模拟哪些对象

在创建方法时,是否应该将在该方法中实例化的每个对象作为参数传入,以便可以在单元测试中模拟这些对象?

我们在工作中有很多方法,没有相关的单元测试,也没有回顾性地编写测试; 我们发现在这些方法中实例化了很多对象.

我们的一个选择是将我们当前的方法重构为更像单元的方法,并减少每个方法的责任数量.这可能是一个漫长的过程,但对我们来说肯定是一个很大的好处.

你怎么看?是否应将在方法中实例化的所有对象作为参数传入?

tdd unit-testing mocking

9
推荐指数
2
解决办法
545
查看次数

是什么javascript可以将"八月"转换为8?

我需要将Monthname转换为该月的整数(并且希望避免使用大的switch语句).有任何想法吗?

javascript date

9
推荐指数
1
解决办法
7122
查看次数

接近重构

我有一个以数据为中心的应用程序,用Python/PyQt编写.我打算做一些重构来真正将UI与核心分开,主要是因为还没有任何真正的测试,而且显然必须改变.

已经存在一些分离,我认为我已经以正确的方式做了很多事情,但它远非完美.两个例子,告诉你什么样的事情困扰着我:

  • 当用户右键单击数据对象的表示时,弹出的上下文菜单由数据对象创建,尽管此数据对象(实质上是数据库行的ORM表示)应该与UI无关.

  • 当某些内容被写入数据库但写入失败时(例如,因为数据库记录被其他用户锁定),会向用户呈现经典的"重试/中止"消息框.此对话框由数据提供程序*创建,但提供程序显然不应具有任何UI功能.显然,提供者可以提出异常或以其他方式指示失败,并且UI可以捕获并相应地采取行动.

    *这是我用于对象的词,它基本上代表数据库表并在其数据对象和数据库引擎之间进行调解; 我不确定这是否通常被称为"提供者"

我没有测试经验,所以我不容易"感觉"可测性问题等,但在我开始之前,必须进行一些重组.

没有复杂的业务逻辑(它主要只是CRU D,是的,即使没有D),这将比重写更重组,所以我并不真正关心引入这个问题中讨论的回归错误.

我的计划是开始重构这个想法,因为UI部分很容易被删除,例如,由Web前端或基于文本的界面而不是Qt界面替换.另一方面,Qt本身仍将被核心使用,因为信号/插槽机制在很多地方使用,例如数据对象发出changed信号来指示,你知道什么.

所以,我的问题:这是一种提高可测试性和可维护性的可行方法吗?还有其他任何评论,特别是考虑到Python吗?

python refactoring qt unit-testing separation-of-concerns

7
推荐指数
2
解决办法
723
查看次数

在Vista/7下,WriteFile错误#5"拒绝访问"

我google了很多,我找不到这个问题的任何答案......

我有一个C++控制台应用程序,它读取1GB SD卡,修复不正确关闭的文件并相应地写入FAT表.SD卡最初由定制设备中的固件写入.它工作正常到Xp并停止在Win Vista/7中工作.我尝试提升权限:在管理员帐户类型中,我使用"以管理员身份运行"方法启动了一个cmd窗口,但没有运气.我还尝试使用清单,要求获得最高可用权限,但没有运气.

我在一些帖子中读到"Windows Vista根本不允许您从用户模式进程访问磁盘.有没有人知道绕过这种行为的方法?

我正在解决方法,但我想知道这是不可能的

编辑:

这是我在这里发表的第一篇文章,所以我对链接问题并不十分了解......但我根本没有任何垃圾邮件......只是在社区网站上询问:)

代码看起来像

hDevice = CreateFile(buffer,GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING,0,NULL); 
Run Code Online (Sandbox Code Playgroud)

然后,我从SD读取BTB信息,查找并不正确地关闭文件.

最后在尝试写入SD时

WriteFile(hDevice,buffer,SD_SECTOR_SIZE, &temp, 0)
Run Code Online (Sandbox Code Playgroud)

我拒绝访问(错误#5)

CreateFile()上的字符串是\.\ g:因为g字母对应于我机器上的SD卡.一切正常,正如我之前所说的那样.我也尝试使用:带有FSCTL_LOCK_VOLUME的DeviceIoControl但是会出现mem故障错误.

希望这有助于理解和感谢任何帮助

c++ winapi fat32

7
推荐指数
1
解决办法
4703
查看次数