我今天遇到了一个有趣的问题.我正在改变存储过程并在最后放置一个select语句.它本来是临时的,只是用于处理数据.我很惊讶后来发现声明已经保存并且在SP运行时正在执行.
SET ANSI_NULLS ON
GO
-- Comments usually go here and are saved as part of the SP
ALTER PROCEDURE [dbo].[MySP]
@param INT
AS
BEGIN
--Your normal SQL statements here
END
--You can also add SQL statements here
select * from LargeTable
--You have access to the params
select @param
Run Code Online (Sandbox Code Playgroud)
有意义的是保存所有内容,而不仅仅是BEGIN/END内部的内容,否则评论SET ANSI_NULLS等会消失.我对从哪里开始有点困惑,所以我有几个问题:
SET ANSI_NULLS被保存为SP的一部分.我已经确认每个SP都有自己的价值.SQL Server如何知道将其保存为SP的一部分,因为之前没有引用它?它是否对当前环境状态进行全面扫描,然后在ALTER PROCEDURE运行时保存状态(可能只是非默认值)?我写了一个模块来拥有自己的菜单栏,而不是仅仅使用类别作为菜单栏.
所以,在这里我想在我的自定义菜单模块中的Tab/Form.php中添加新菜单时显示已经添加的菜单.如何将所有现有菜单名称显示为表单上的下拉列表/选项列表.这是我以前用于菜单表单的代码.
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset('menu_form', array('legend'=>Mage::helper('menu')->__('Menu information')));
$note = "Name of this Menu";
$fieldset->addField('title', 'text', array(
'label' => Mage::helper('menu')->__('Menu Name'),
'class' => 'required-entry',
'required' => true,
'note' => $note,
'name' => 'title',
));
$note = "Menu level";
$fieldset->addField('level', 'select', array(
'label' => Mage::helper('menu')->__('Menu level'),
'name' => 'level',
'note' => $note,
'values' => array(
array(
'value' => 1,
'label' => Mage::helper('menu')->__('Level 1'),
),
array(
'value' => 2,
'label' => Mage::helper('menu')->__('Level 2'),
),
),
));
$model = …Run Code Online (Sandbox Code Playgroud) 大多数情况下,C#委托已将对象与成员函数一起存储起来非常方便.但有没有办法,存储 - 并作为参数传递 - 只有成员函数本身,就像C++中的旧指针指向成员函数一样?
如果描述不清楚,我给出一个自包含的例子.并且,是的,在示例中,传递成员函数的坚持是完全没有意义的,但我有更严肃的用途.
class Foo {
public int i { get; set; }
/* Can this be done?
public static int Apply (Foo obj, ???? method, int j) {
return obj.method (j);
}
*/
public static int ApplyHack (Foo obj, Func<int, int> method, int j) {
return (int) method.Method.Invoke (obj, new object [] { j });
}
public static readonly Foo _ = new Foo (); // dummy object for ApplyHack
public int Multiply (int j) { …Run Code Online (Sandbox Code Playgroud) 我正在对最近接手的网站进行一些优化.我发现了一个我不认识的脚本:http: //static.ak.fbcdn.net/rsrc.php/zo/r/V95Lkt_uLNB.js
它可能是一个Facebook的东西,并且有一些关键的日志记录正在进行(我不太热衷)
毫无疑问,页面加载(87kb)上请求的最大文件是如此,如果我没有它,它将真正加快页面加载.
有谁知道:
A)它是什么
B)它是什么
C)它做什么
D)我可以没有它
我通过简单的Rails.cache界面在我的Rails 3应用程序中使用memcached进行缓存,现在我想用redis和resque做一些后台作业处理.
我认为它们的不同足以保证同时使用它们.但是在heroku上,使用memcached和redis都有单独的费用.使用两者是否有意义,或者我应该迁移到只使用redis?
我喜欢使用memcached进行缓存,因为最近最少使用的密钥会自动从缓存中推出,而我不需要缓存数据.Redis对我来说几乎是新手,但我知道默认情况下它是持久的,并且密钥不会自动从缓存中过期.
编辑:只是想更清楚我的问题.我知道只使用Redis而不是两者都是可行的.我想我只是想知道这样做有什么特别的缺点吗?考虑到实现和基础设施,我不应该只使用Redis吗?(即,对于简单的缓存,memcached更快?)我没有找到任何确定的方法.
我最近一直在为我的公司进行安全代码审查,并使用名为Fortify360的工具.它将识别代码的许多问题并描述问题.它提出的一个有趣的问题是我没有找到任何其他信息如下:
"存储在内存中的敏感数据(如密码)如果存储在托管的String对象中,可能会泄露.字符串对象没有固定,因此垃圾收集器可以随意重定位这些对象并在内存中留下几个副本.这些对象是默认情况下没有加密,因此任何可以读取进程内存的人都能看到内容.此外,如果进程的内存被换出到磁盘,则字符串的未加密内容将被写入交换文件. ,因为String对象是不可变的,所以只能通过CLR垃圾收集器从内存中删除String的值.除非CLR内存不足,否则不需要运行垃圾收集器,因此不能保证何时垃圾收集将发生.如果应用程序崩溃,应用程序的内存转储可能会泄露敏感数据."
所有这些我理解为很有道理,而且我对这个问题的研究非常标准.
问题是:我该如何解决这个问题?假设有问题的类不能从iDisposable继承(非常大的应用程序,并且在有问题的字符串之后很久就需要该类).是否有另一种手动内存管理方式来处理特定字符串而不调用垃圾收集器,GC.Collect()??
提前感谢您的帮助.
亚历克斯
我对Rails 3.0.1,Ruby 1.9.2以及我的网站本地化产生了一些麻烦.
问题很简单,我在视图中有类似的东西:
f.input :zip_code, :label => I18n.t('labels.zip_code')
Run Code Online (Sandbox Code Playgroud)
和es.yml文件:
es:
labels:
zip_code: "Este código postal no es valido."
Run Code Online (Sandbox Code Playgroud)
en.yml文件没有麻烦(它是纯ASCII)但是当网站设置时i18n.locale == 'es'我得到这个错误:
incompatible character encodings: UTF-8 and ASCII-8BIT
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一段时间,但没有找到使用我的UTF-8翻译文件的方法.
有人知道如何让它有效吗?
谢谢你的帮助.
ruby-on-rails utf-8 internationalization character-encoding ruby-on-rails-3
Grid.SharedSizeGroupSilverlight 4中没有.这个问题的解决方法是什么?
例如:我有一个DataTemplate为ListBox.ItemTemplate具有两列组成的网格的,我想具有用于两列和第一列需要具有自动宽度相同的宽度.
我有一个WinForms应用程序,我试图用ClickOnce部署.它包含一个可执行文件和一个依赖的dll,以及一个名为"Map"的文件夹中的一堆松散的xml文件.xml文件似乎在生成的clickonce包中都存在且正确,并且都包含在.manifest文件中.
但是,当我安装并运行时,使用以下代码给我一个目录未找到异常:
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
string mapPath = Path.Combine(appPath, "Maps");
foreach (string xmlFile in Directory.GetFiles(mapPath, "*.xml"))
Run Code Online (Sandbox Code Playgroud)
当我查看"appPath"(即C:\Users\Mark\AppData\Local\Apps\2.0\0H6ZLXXN.30V\3TNO49OJ.8JH\midi..tion_5194807c0e95e913_0000.0004_b9d52c73fd4d58ad\)时,有app可执行文件和dll,但Maps文件夹不存在.
我究竟做错了什么?这是用我的应用程序捆绑额外文件的正确方法吗?我实际上希望Maps文件夹能够在某个地方用户轻松访问并添加自己的文件.
如果您cmpthese在Perl Benchmark模块的文档中阅读过,它会说明cmpthese或timethese可以在文本或子例程引用中使用代码.文档似乎暗示这些表单是完全可以互换的:
# Use Perl code in strings...
timethese($count, {
'Name1' => '...code1...',
'Name2' => '...code2...',
});
# ... or use subroutine references.
timethese($count, {
'Name1' => sub { ...code1... },
'Name2' => sub { ...code2... },
});
Run Code Online (Sandbox Code Playgroud)
我遇到了传递带有字符串形式与子程序引用形式的参数的困难cmpthese.要么@array没有传递值,要么我有运行时错误.
我有以下代码:
#!/usr/bin/perl
use strict; use warnings;
use Benchmark qw(:all);
my @array = qw( first second third );
sub target {
my $str = $_[0];
print "str=$str\n";
}
sub control …Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
clickonce ×1
clr ×1
eval ×1
grid ×1
heroku ×1
javascript ×1
magento ×1
memcached ×1
optimization ×1
parameters ×1
perl ×1
redis ×1
security ×1
silverlight ×1
subroutine ×1
t-sql ×1
utf-8 ×1
winforms ×1