小编nig*_*der的帖子

MySQL:当存储过程参数名称与表列名称相同时

假设有一个存储过程SetCustomerName,它有一个输入参数Name,我有一个表名为customer的表客户.所以在我的存储过程中,我想设置客户的名字.如果我写

UPDATE customers SET Name = Name;
Run Code Online (Sandbox Code Playgroud)

这是不正确的,我还看到了另外两种方式:

UPDATE customers SET Name = `Name`;
UPDATE customers SET customers.Name = Name;
Run Code Online (Sandbox Code Playgroud)

第一个工作,但我没有在文档中找到我可以在`字符内包装参数.或者我在文档中错过了它(在这种情况下链接是受欢迎的).

还有哪些其他方式以及这种情况的标准方式是什么?重命名输入参数对我不好(因为如果你知道我的意思,我有自动对象关系映射).

更新:

所以,有一个关于反引号的链接(http://dev.mysql.com/doc/refman/5.0/en/identifiers.html)但是没有深入解释如何使用它们(如何使用它们与参数和列名).

并且有一个非常奇怪的事情(至少对我来说):你可以使用反引号:

UPDATE customers SET Name = `Name`;
//or
UPDATE customers SET `Name` = Name;
//or even
UPDATE customers SET `Name` = `Name`;
Run Code Online (Sandbox Code Playgroud)

他们都以同样的方式工作.

你觉得这不奇怪吗?这个奇怪的行为是在某处解释的吗?

mysql parameters stored-procedures

9
推荐指数
3
解决办法
9435
查看次数

什么是类型安全?

我最近有一次脑力训练考试,得到了很高的评价,但有几个问题对我来说很难.也许是因为英语不是我的母语......其中一个问题是:

以下哪一项描述了类型安全?

  1. 用于确保CLR中引用和值类型的安全性的编程构造
  2. 禁止非托管访问导致的内存泄漏保护
  3. 特定于CLR的功能可确保类型可能无法访问其自己的AppDomain外部的内存
  4. 创建一种机制,通过使用强名称密钥来保护程序集及其类型
  5. 处理分配对象的保证的概念总是以兼容的方式访问

我认为它是1或5,但无论如何它们听起来很奇怪:(

你怎么看?

.net testing type-safety brainbench

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

按钮vs链接vs输入类型="提交"在表单上

用户登录到他的控制面板并查看他的传入消息.在每条消息附近都有一个"回复"按钮.实现该按钮的正确方法是什么?

我看到三个主要选择:

  1. 使用链接:

    <a href="customer.php?reply&messageid=1234">Reply</a>.
    
    Run Code Online (Sandbox Code Playgroud)

    坏处:

    • 我们需要将该链接设置为看起来像一个按钮.因为我认为动作"回复"应该用按钮来表示,而不是链接(在我看来,当链接到某些资源时以及当我们在链接文本中有名词时,应该使用链接;如果我们想要做出动作并且在标题中有动词(动作) - 应该使用按钮).

  1. 使用按钮:

    <button onclick="location.href='customer.php?reply&messageid=1234'">Reply</button>`  
    
    Run Code Online (Sandbox Code Playgroud)

    坏处:

    • 用户必须启用JavaScript.虽然根据我们的统计数据,99.8%的用户启用了JavaScript,如果他们不这样做,他们仍然很难在我们的网站上工作(我们有很多用JavaScript实现的功能).所以我认为100%的实际活跃用户都启用了JavaScript.

  1. 使用表格<input type="submit">:

    <form action="customer.php?reply" method="get">
      <input name="messageid" type="hidden" value="1234" />
      <input type="submit" value="Reply" />
    </form>
    
    Run Code Online (Sandbox Code Playgroud)

    坏处:

    • 我认为在这里使用表格是"人为的".用户不输入任何内容.我们使用表单只是为了使我们的按钮工作.我还认为,当我们不更改任何内容并且只需要向用户显示回复表单时使用POST请求 - 违反了REST原则.但即使使用GET,我仍然认为在这种情况下使用表单是人为的.

其他一些说明:

  • 使用链接内的按钮在IE中不起作用.
  • 这是我们网站的一个私人部分,所以搜索引擎看不到它,我们真的不需要一个链接来帮助搜索引擎跟踪它并索引资源(这是在网络中使用链接而不是按钮的常用参数)

你会选择哪一个?为什么?

UPD.好吧,我决定使用一个链接.谢谢大家的讨论!

html javascript forms button hyperlink

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

什么时候表格从MyISAM改为InnoDb?

这个问题就像我之前的问题的延续: 我是否正确InnoDb比MyISAM更频繁的并发更新和插入?

但这次我有具体的问题.
我们知道,当我们没有很多并发更新(插入)时,MyISAM比InnoDb更快.当我们有许多并发更新时,MyISAM表被锁定,所有其他客户端应该等待.

1)但是什么时候从MyISAM改为InnoDb?每秒更新1次?每秒10次更新?每秒100次更新?
2)对于一个具体的例子,最好是在我的网站上的一个表格中更改为InnoDb,我通常每分钟有几个更新(来自不同的会话),但有时它可以每秒2-3次更新?

mysql database performance myisam innodb

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

数据绑定并在setter中抛出异常

假设我有一个简单的课程

public class Person
{
  public string Name { get; set; }

  private int _age;
  public int Age
  {
    get { return _age; }
    set
    {
      if(value < 0 || value > 150)
        throw new ValidationException("Person age is incorrect");
      _age = value;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我想为这个类设置一个绑定:

txtAge.DataBindings.Add("Text", dataSource, "Name");
Run Code Online (Sandbox Code Playgroud)

现在,如果我在文本框中输入了不正确的年龄值(比如说200),那么设置器中的异常将被吞下,在我更正文本框中的值之前,我将无法执行任何操作.我的意思是文本框无法放松焦点.这一切都是沉默的 - 没有错误 - 你只是不能做任何事情(甚至关闭表格或整个应用程序),直到你纠正价值.

这似乎是一个错误,但问题是:这是一个解决方法是什么?

.net data-binding setter exception winforms

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

jQuery的attr()函数用html特殊字符打破html?

请看下面的代码:

http://jsfiddle.net/htdTg/2/

在第一个链接中有一个title属性,其中包含html特殊字符,&lt;后跟"!" (实际上跟随哪个角色并不重要).当我们使用jQuery的attr()函数获取该title属性的值时,html被破坏(只要以下文本也缺失,您就可以看到没有打印"<"字符.

在第二个链接中唯一的区别是我之后添加了一个空格&lt;,现在它按预期工作.

你认为这是jQuery中的一个错误还是我不明白的东西?

PS.如果你认为我做了一些奇怪的事情 - 它只是来自某个工具提示插件的一些代码.

HTML:

<a href="#" title="<div style='color:red'>This is the less than sign: &lt;! Now you know it?</div>">This is a link</a><br>
<a href="#" title="<div style='color:red'>This is the less than sign: &lt; ! Now you know it?</div>">This is a link</a><br>?
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('a').each(function() {
    $('body').append($(this).attr('title')); });

// just to exclude that it's append() function's fault :)
$('body').append("<div style='color:red'>This is the less than sign: &lt;! Now you know it?</div>");?
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

控件和标准控件尺寸之间的标准余量

例如,Windows窗体设计器提供将窗体上的控件放置在窗体边框和控件边框之间的12个像素的位置.对我来说似乎太过分了.它是标准值吗?另外,据我所知,标准按钮高度应为23像素.我对吗?有没有文件说明这一切?并且我可以在Visual Studio中设置此默认值(例如,如果希望控件和表单边框之间的默认边距,当出现快照时,如果是6像素而不是12)?

usability user-interface windows-forms-designer visual-studio

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

如何处理ComboBox选择的索引更改?

我有一个ComboBox,有一个制造商列表.当用户选择制造商时,下面的网格将填充所选制造商的数据.该数据可以修改.完成所有更改后,用户必须按"保存"按钮.

但是用户可能忘记按Save并从ComboBox中选择另一个制造商,并且网格将填充另一个数据,因此之前的更改将丢失.

因此,在选择其他制造商之前,我需要询问用户是否要保存更改.

我怎样才能做到这一点?或者也许你提供另一种解决我的任务的方法(从另一个角度看)?

.net combobox winforms

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

我是对的,InnoDb比MyISAM更适合频繁的并发更新和插入吗?

我们的网站每天有数百名访问者,每天有数万个查询.因此,数据库中的一些表很少更新,一些表每分钟更新几次,一些表更新〜每秒10次.
MyISAM使用表级锁定进行更新,InnoDb使用行级锁定.
因此,据我所知,对于频繁并发更新的表(每秒多次更新),最好将它们设为InnoDb,对于其他表(如果我们当然不需要事务和外键),可以使用MyISAM引擎.
我的想法是对的吗?

mysql database myisam innodb locking

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

关于MyISAM表上的锁定和事务的问题

我在myisam表中有一个计数器字段.要在多任务环境(Web服务器,来自PHP的并发查询)中更新计数器值,我需要锁定记录以进行更新.所以我这样做:

START TRANSACTION; 
SELECT Counter FROM mytable ... FOR UPDATE; 
UPDATE Counter value or INSERT INTO mytable; 
// let's make sleep for 20 seconds here to make transaction longer 
COMMIT; 
Run Code Online (Sandbox Code Playgroud)

据我所知,在MyISAM中,整个表应该被锁定,直到交易结束.当我从PHP启动并发查询,在浏览器中打开脚本时,它确实等待锁定消失.但是,如果我使用mysql.exe从表中选择所有记录 - 即使仍然保持锁定,它也会选择所有记录.

所以我似乎不明白.请解释一下这种行为.

mysql database locking transactions

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