我有一个我需要执行的查询,我不知道如何构造.
我有一张名为Employees的桌子.我还有另一张叫做公司的桌子.还有第三个名为Files的表.您可以想象,公司有员工,员工有文件.
我需要列出我数据库中的所有员工.面临的挑战是,我需要列出与员工在同一公司中的文件总数.我试过以下的变种而没有任何运气:
SELECT
e.FirstName,
e.LastName,
e.Company,
(SELECT COUNT(*) FROM Files f WHERE f.EmployeeID IN (SELECT [ID] FROM Employees e2 WHERE e2.CompanyID=e.CompanyID)) as 'FileCount'
FROM
Employees e
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢!
我有徽章(有点像StackOverflow).
其中一些可以附加到可徽章的东西上(例如,帖子上附有> X评论的徽章附在帖子上).几乎所有级别都有多个级别(例如> 20,> 100,> 200),并且每个可标记的x徽章类型(= badgeset_id)只能有一个级别.
为了更容易地执行一个级别的每徽章约束,我想badgings由两列的外键,指定他们的徽章- badgeset_id和level-而不是由主键(badge_id),虽然徽章确实有一个标准的主键太.
在代码中:
class Badge < ActiveRecord::Base
has_many :badgings, :dependent => :destroy
# integer: badgeset_id, level
validates_uniqueness_of :badgeset_id, :scope => :level
end
class Badging < ActiveRecord::Base
belongs_to :user
# integer: badgset_id, level instead of badge_id
#belongs_to :badge # <-- how to specify?
belongs_to :badgeable, :polymorphic => true
validates_uniqueness_of :badgeset_id, :scope => [:user_id, :badgeable_id]
validates_presence_of :badgeset_id, :level, :user_id
# instead of this:
def badge
Badge.first(:conditions => {:badgeset_id => …Run Code Online (Sandbox Code Playgroud) 如何在不发送消息的情况下通过C#测试SMTP是否正常运行.
我当然可以尝试:
try{
// send email to "nonsense@example.com"
}
catch
{
// log "smtp is down"
}
Run Code Online (Sandbox Code Playgroud)
必须有一个更整洁的方法来做到这一点.
我的情况是,一堆文件被检入svn,这是非常讨厌的源代码控制(特别是一个log4j.properties文件),我想从版本控制中删除它们.我已经知道如何在我自己的本地工作副本中从svn版本控件中删除文件,就像在这个问题和这个问题中一样,但这并不是我正在寻找的.
问题是,一旦我删除文件svn rm --keep-local,当每个其他用户从存储库中拉出时,他们的本地副本log4j.properties将消失,他们的环境将崩溃.我想要做的是从存储库中的版本控制中删除该文件,但也使其成为当其他人从存储库中拉出时,就好像他们--keep-local在自己的机器上使用它一样,以便它们的log4j.properties文件的现有副本坚持不懈但变得无法接受.
这甚至可能吗?我怀疑它是svn没有的功能.
我看看ExtJS,它似乎提供了许多RIA功能,如Flex提供的更大容量的套件,没有闪存要求.但是,随着jQuery-UI这样的开源式主题的继续,ExtJS会在某种程度上死掉吗?此外,由于闪存渗透率只会继续增加,为什么要将库存放入javascript库?
也就是说,像jQuery这样的JavaScript库在提供易于使用的API方面取得了巨大的飞跃,因此可能有一些优点.
思考?意见?ExtJS有价格标签,所以我不得不问这个问题.
我正在使用ServiceProcessInstaller和ServiceInstaller类安装Windows服务.
我已经用它ServiceProcessInstaller来设置启动类型,名称等.但是如何将恢复操作设置为重启?
我知道我可以在安装服务后手动执行此操作,方法是转到服务管理控制台并更改服务属性的恢复选项卡上的设置,但有没有办法在安装期间执行此操作?

我正在使用乘客部署Sinatra应用程序.已部署的应用程序正在运行,但并非完全有效:某些路径工作正常,其他路径只是呈现空白页面.我似乎无法找到工作路线和没有工作的路线之间的任何重大差异,我似乎无法追查任何错误..
处理程序
我已经定义了not_found和错误处理程序,如下所示:
not_found do
'404. Bummer!'
end
error do
'Nasty error: ' + env['sinatra.error'].name
end
Run Code Online (Sandbox Code Playgroud)
这些在我的本地机器上工作正常,无论是在开发还是生产中,但我从未在服务器上看到这些.
Apache日志
当我拖拽Apache的access.log并点击其中一条破碎的路径时,我看到500:
helpers [27/Oct/2009:15:54:59 -0400] "GET /admin/member_photos/photos HTTP/1.1" 500 20 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
Run Code Online (Sandbox Code Playgroud)
rack_hoptoad
我还在我的config.ru中安装并配置了rack_hoptoad中间件,但没有例外,它正在跳转到hoptoad.
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'
Run Code Online (Sandbox Code Playgroud)
记录
我已经设置了这样的日志..
set :raise_errors => true
set :logging, true
log = File.new("log/sinatra.log", "a+")
STDOUT.reopen(log)
STDERR.reopen(log)
require 'logger'
configure do
LOGGER = Logger.new("log/sinatra.log")
end
helpers do
def …Run Code Online (Sandbox Code Playgroud) javascript ×2
sql-server ×2
.net ×1
activerecord ×1
associations ×1
c# ×1
cocoa-touch ×1
debugging ×1
extjs ×1
gesture ×1
ios ×1
mysql ×1
operators ×1
passenger ×1
rack ×1
ruby ×1
service ×1
sinatra ×1
smtp ×1
sql ×1
svn ×1