我正在尝试查询我的数据库并返回特定日期范围内的条目.作为一个简单的例子,请考虑以下内容:
@foos = FooTracking.where('when > ?', DateTime.new(2008, 12, 22, 14, 30))
Run Code Online (Sandbox Code Playgroud)
这导致错误和转储:
ActiveRecord::StatementInvalid: Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'when >= '2008-12-22 14:30:00')' at line 1: SELECT `foo_tracking`.* FROM `foo_tracking` WHERE (when >= '2008-12-22 14:30:00')
where调用在我的表的其他列上工作(没有与日期有关),我在这里缺少什么?
我正在努力用Java重构一些代码,所以我正在计算时间以确保代码不会变慢.但是,新的重构代码似乎比原始代码花费更多时间.值得注意的是,当我使用分析器运行代码时,新代码明显快于旧代码.主要区别在于旧代码是递归的,而新代码是迭代的.分析器可以将递归代码影响几十万,而只影响迭代代码1.5倍?
我在Mac OS X 10.6.6,3 GB RAM,2.4 GHz CPU上运行,使用默认的Netbeans 6.9分析器和Java 1.6.0__22 64位服务器.
(两种方法都使用System.currentTimeMillis()进行自我定时代码,以便我可以比较不使用分析器的时间,但这不应该明显影响事物.)
我正在处理一些错误处理代码(使用elmah),默认设置只发送错误消息.我想知道抛出错误的实际SQL(即"SELECT*FROM thisTableDoesNotExist")
这是我到目前为止:
if (e.Error.Exception is SqlException)
{
//if SQL exception try to give some extra information
SqlException sqlEx = e.Error.Exception as SqlException;
e.Mail.Body = e.Mail.Body + "<div>" +
"<h1>SQL EXCEPTION</h1>" +
"<b>Message</b>: " + sqlEx.Message +
"<br/><b>LineNumber:</b> " + sqlEx.LineNumber +
"<br/><b>Source:</b> " + sqlEx.Source +
"<br/><b>Procedure:</b> " + sqlEx.Procedure +
"</div>";
}
Run Code Online (Sandbox Code Playgroud)
我希望能够显示实际的SQL.数据库是SQL Server 2008,SqlException是System.Data.SqlClient.SqlException类型.
我正在使用Quartz Enterprise Job Scheduler(1.8.3).作业配置来自几个xml文件,我们有一个特殊的作业,可以检测这些xml文件中的更改并重新计划作业.这很有用,但问题是我还需要这个"调度程序工作"来重新安排自己.一旦这个工作重新安排自己,由于某种原因,我看到它被执行了很多次.但我没有看到任何例外.
我已经复制并隔离了这个问题.这将是切入点:
public class App {
public static void main(final String[] args) throws ParseException, SchedulerException {
// get the scheduler from the factory
final Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// start the scheduler
scheduler.start();
// schedule the job to run every 20 seconds
final JobDetail jobDetail = new JobDetail("jobname", "groupname", TestJob.class);
final Trigger trigger = new CronTrigger("triggername", "groupname", "*/20 * * * * ?");
// set the scheduler in the job data map, so the job can re-configure …Run Code Online (Sandbox Code Playgroud) 我有一个班级管理员:
public class Admin
{
public virtual int AdminId { get; set; }
[Remote("UsernameAvailable", "Admins")]
[Display(Name = "lblUsername", ResourceType = typeof(Resources.Admin.Controllers.Admins))]
public virtual string Username { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
然后我有一个用于视图的viewmodel类:
public class AdminsEditViewModel
{
public Admin Admin { get; set; }
public IEnumerable<SelectListItem> SelectAdminsInGroup { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult UsernameAvailable(string Username)
{
return Json(this.AdminRepository.GetLoginByUsername(Username), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
但是,字符串Username始终为null,因为发送给Action的是:
http://localhost/admin/admins/usernameavailable?Admin.Username=ferwf
Run Code Online (Sandbox Code Playgroud)
问题是UsernameAvailable在http查询中发送Admin.Username值和NOT Username值.我如何使用视图模型?
谢谢
我编写了一个Chrome浏览器扩展程序,它使用Ajax将数据发布到MVC3控制器.为了确保控制器代码有效,我首先编写了一个Razor网页来对ajax代码进行原型设计.此代码适用于网页,JSON模型绑定所有.我将它发布到一个完整的DNS主机和域名的IIS7服务器上.代码仍然适用于测试页面.
function addUrl()
{
$('#res').html('Adding...');
var myData = { url: $('#urlDiv').html(), comments: $('#c1').val() };
$.ajax(
{
url: 'http://hostname.domainname/ControllerName/AddUrl',
type: "post",
dataType: "json",
data:JSON.stringify(myData),
contentType: "application/json; charset=utf-8",
success: function (result)
{
$('#res').html(result);
},
error: function()
{
$('#res').html('An error occurred');
}
}
);
};
Run Code Online (Sandbox Code Playgroud)
我将此jQuery函数复制到Chrome JavaScript文件中,并通过常规表单按钮从弹出窗口调用它.
<body onload="buildPopupDom();">
<form>
<h2>Add URL</h2>
<div id='urlDiv'></div>
<p>Comments<br /><textarea id="c1" cols="80" rows="3"></textarea></p>
<p><input type="button" value="Save" id="s1" onclick="addUrl();" /> <input type="button" value="Close" onclick="javascript:window.close();" /></p>
</form>
Run Code Online (Sandbox Code Playgroud)
由于某些原因,Chrome扩展程序中的帖子会出现404错误,并且我发现某些MVC3 XSS保护或类似内容阻止了帖子 - 或者IIS7中的某些内容(UrlScan未安装).
给定一个自定义属性,我想获得其目标的名称:
public class Example
{
[Woop] ////// basically I want to get "Size" datamember name from the attribute
public float Size;
}
public class Tester
{
public static void Main()
{
Type type = typeof(Example);
object[] attributes = type.GetCustomAttributes(typeof(WoopAttribute), false);
foreach (var attribute in attributes)
{
// I have the attribute, but what is the name of it's target? (Example.Size)
attribute.GetTargetName(); //??
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望它清楚!
我记得在我最后一年的大学项目中我编写了一个C#注册表监视器,然而,当我将它与Microsoft ProcessMonitor应用程序进行比较时(我记不清它的确切名称,但是它是由MSoft收购的公司),我没有捕获尽可能多的注册表调用.
这是因为我使用的是C#包装器,因此它只会捕获用户模式注册表访问吗?
我使用了这个包装器:http://www.codeproject.com/KB/DLL/EasyHook64.aspx
为了捕获内核模式注册表访问,我必须用C++编写?
下面是我的程序中新/删除操作符的模式.Valgrind说记忆"肯定会丢失".我无法得到泄漏的地方.我使用new/delete运算符是否有问题.
class Generic
{
GenericInterface *gInterface; //GenericInterface is abstract class
public:
Generic ()
{
gInterface = NULL;
}
~Generic ()
{
delete gInterface;
}
void Create()
{
gInterface = new Specific();
}
};
class Specific : public GenericInterface
{
MyClass* _myClass;
public:
Specific()
{
_myClass = new MyClass;
}
~Specific()
{
delete _myClass;
}
};
int main()
{
Generic g;
g.Create();
}
Run Code Online (Sandbox Code Playgroud)
瓦尔格林德说,记忆力已经消失.
==2639== 8 bytes in 1 blocks are definitely lost in loss record 2 of 45
==2639== at …Run Code Online (Sandbox Code Playgroud) c# ×3
c++ ×2
java ×2
api-hook ×1
asp.net-mvc ×1
f# ×1
jquery ×1
json ×1
mysql ×1
performance ×1
profiling ×1
recursion ×1
reflection ×1
sql ×1
sqlexception ×1
valgrind ×1