问题列表 - 第37477页

此UPDATE语句中是否存在可能的竞争条件?

我正在编写一个同步软件,它将在一个DB中进行所有更改并将它们同步到另一个DB.为此我在表格中添加了T两列:

alter table T add LastUpdate rowversion, LastSync binary(8) not null default 0
Run Code Online (Sandbox Code Playgroud)

现在,我可以轻松选择自上次同步以来已更改的所有行:

select * from T where LastUpdate > LastSync
Run Code Online (Sandbox Code Playgroud)

但是在执行同步之后,我应该使两个字段相等.但是更新行也会更新时间戳,所以我必须这样做:

update T set LastSync=@@DBTS+1 where ID=@syncedId
Run Code Online (Sandbox Code Playgroud)

但我想知道 - 这总是有效吗?如果我读取了值,@@DBTS然后另一个用户设法在我的行提交之前的某个地方插入/更新一行,该怎么办?这是冒险的代码吗?如果是的话 - 它怎么能变得更好?

sql-server timestamp rowversion race-condition database-concurrency

5
推荐指数
1
解决办法
333
查看次数

jQuery右键单击上下文菜单帮助!

http://pastebin.com/YyDzQ4Bk这是一个右键单击上下文菜单的插件,任何人都知道为什么它在IE中不起作用?

不仅如此,它打破了我的许多其他jQuery的东西,比如花哨的盒子和一些jQuery悬停功能.

javascript jquery internet-explorer contextmenu

8
推荐指数
1
解决办法
2万
查看次数

使用automapper有什么好处?

我的问题可能很愚蠢,但我很确定我会错过这个问题的一个非常重要的部分.我必须做一些对象到对象映射(在C#项目中使用的域类和发送到闪存客户端的类之间).

我的第一选择是Automapper.但我有一些问题(嵌套属性,而不是无定义的构造函数定义).事实证明,用automapper映射一个非常复杂的类型并不容易.

然后我的问题是:为什么不实现像这样的方法:

  ClassA GetClassAByClassB(ClassB pObj)

   {  
     ClassA objA = new ClassA();  
     objA.Prop1 = pObj.Prop1;  
     objA.NestedType.Prop2 = pObj.Prop2;  
     //....Some more.....  
     return objA;  
   }  
Run Code Online (Sandbox Code Playgroud)

它具有与使用Automapper完成的映射完全相同的灵活性.您仍然必须提供源对象中的哪个属性被复制到目标对象中的哪些属性.你只需使用'='而不是lambda表达式.

但是,如果您在域类中更改某些内容,则无论如何都必须更改此"映射"部分.那么说服我使用Automapper的主要原因是什么(正如我在开头说的那样,我很确定我错过了一些重要的东西).

mapping automapper object-object-mapping

6
推荐指数
3
解决办法
3120
查看次数

如何在PHP套接字监听器上检测客户端断开连接?

我一直在测试PHP套接字监听,并遇到了上述问题.我的测试监听器工作正常,但如果客户端在没有告诉服务器的情况下断开连接,则脚本会进入无限循环,直到新客户端连接为止.问题似乎在线,$ready = socket_select($read, $write = NULL, $except = NULL, $tv_sec = NULL);因为它应该停止等待连接在这里,而是它跳过等待并直接循环.

任何指针将不胜感激.

码:

#!/usr/bin/php -q
<?php

$debug = true;
function e($str) {
    global $debug;
    if($debug) { echo($str . "\n"); }
}

e("Starting...");
error_reporting(1);
ini_set('display_errors', '1');

e("Creating master socket...");
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$max_clients = 10;

e("Setting socket options...");
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
e("Binding socket...");
socket_bind($socket, "192.168.1.38", 20000);
e("Listening...");
socket_listen($socket, $max_clients);

$clients = array('0' => array('socket' => $socket));

while(TRUE) {
    e("Beginning of WHILE");
    $read[0] = $socket;

    for($i=1; …
Run Code Online (Sandbox Code Playgroud)

php sockets

6
推荐指数
1
解决办法
6605
查看次数

提供下载到受密码保护的 FTP 的链接

我有一个 FTP,其中包含一些文件,我想将其提供给用户下载。但是 FTP 受密码保护,我想使用 PHP 验证 FTP 并使链接在 php 页面中可用,以便当用户单击该页面中的任何 FTP 链接时,应该开始下载。

请帮忙。

php ftp

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

这个正则表达式模式是否会捕获所有需要的SQL注入?

我们将防火墙规则(REGEX)更改为以下内容:

Name
 Type
 Context
 Severity
 Pattern

CS:select_into
 signature
 http-url
 critical
 .*\[select\]\s+.*\[into\].*

CS:select_from
 signature
 http-url
 critical
 .*\[select\]\s+.*\[from\].*

CS:insert_into
 signature
 http-url
 critical
 .*\[insert\]\s+.*\[into\].*

CS:drop_database
 signature
 http-url
 critical
 .*\[drop\]\s+.*\[database\].*

CS:drop_table
 signature
 http-url
 critical
 .*\[drop\]\s+.*\[table\].*

CS:delete_from
 signature
 http-url
 critical
 .*\[delete\]\s+.*\[from\].*

CS:drop_view
 signature
 http-url
 critical
 .*\[drop\]\s+.*\[view\].*

CS:exec
 signature
 http-url
 critical
 .*\[exec\].*(%28|\().*(%29|\)).*

CS:update_set
 signature
 http-url
 critical
 .*\[update\](%20|\+)(%20|\+|.)*\[set\].*
Run Code Online (Sandbox Code Playgroud)

这会阻止所有SQL注入尝试吗?例如,是否可以使用多个空格删除视图?

regex firewall sql-injection

2
推荐指数
1
解决办法
2626
查看次数

C#中有哪些优秀的编程实践使代码更加不言自明?

我认为使代码不言自明,而不需要在整个地方进行评论,这是一个很大的优势.但是,您是否可以建议如何减少代码量的方法和技术,使其更具可读性和可理解性.

另外您认为减少大型if statements嵌套for loops和其他结构的好技术有时难以理解.

以下是我认为C#应用程序更具可读性和不言自明的一些内容:

  • foreach循环转换为LINQ语句.
  • 使用匿名函数减少事件处理程序的数量.

关于涵盖这些主题的书籍的建议也将受到赞赏.

.net c# coding-style

4
推荐指数
1
解决办法
405
查看次数

从C#中使用错误的代码页恢复

我通过使用代码页windows-1251从文件中读取字符串"ñîôč˙",而不是使用iso-8859-2.它应该是一些西里尔字符串.如何在C#中实现以下功能:

string res = Recover("?îô??");

string Recover(string input)
{
    ???
}
Run Code Online (Sandbox Code Playgroud)

res是西里尔字符串,如果我在第一时间阅读文件时使用了良好的页面,我会得到它.

c# unicode character-encoding codepages

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

Chrome扩展中的同步消息传递?

我试图阻止脚本文件加载在用户定义的网站上.阻止我正在使用的脚本文件beforeload eventevent.preventDefault();内容脚本,只要我已经知道网站列表就可以正常工作.我的问题是我不提前知道网站列表,所以要获取网站列表我正在向后台页面发送请求但响应是异步且无法使用.

我在Google的文档中可能错过了Chrome Extensions中是否有任何同步消息传递?

// my (simplified) code from content script:
document.addEventListener("beforeload", function(event)
{
  chrome.extension.sendRequest({fnc:"is_owner"}, function(response)
  {
    // asynchronous response is not usable because
    // all scripts have already been loaded
    if (response.is_owner) event.preventDefault();
  });
}, true);
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension

10
推荐指数
1
解决办法
3237
查看次数

Clojure属性映射中的歧义

在Clojure的特殊形式的文档(http://clojure.org/special_forms)的例子:pre:post看起来像这样:

(defn constrained-sqr [x]
    {:pre  [(pos? x)]
     :post [(> % 16), (< % 225)]}
    (* x x))
Run Code Online (Sandbox Code Playgroud)

Clojure如何判断包含元数据的地图是否不是函数的定义?元数据不应该在params向量之前吗?根据defn(http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/defn)的文档,语法是

(defn name doc-string? attr-map? [params*] body)
Run Code Online (Sandbox Code Playgroud)

与params矢量attr-map? 之前.这不是更正确的:

(defn constrained-sqr
    {:pre  [(pos? x)]
     :post [(> % 16), (< % 225)]}
    [x]
    (* x x))
Run Code Online (Sandbox Code Playgroud)

我应该提交错误报告还是我误读了这个?

抱歉,选择尼特.

clojure

3
推荐指数
1
解决办法
819
查看次数