小编kas*_*ter的帖子

而不是SQL Server中的触发器丢失SCOPE_IDENTITY?

我有一个表,我创建了一个INSTEAD OF触发器来强制执行一些业务规则.

问题是,当我将数据插入此表时,SCOPE_IDENTITY()返回一个NULL值,而不是实际插入的标识.

插入+范围代码

INSERT INTO [dbo].[Payment]([DateFrom], [DateTo], [CustomerId], [AdminId])
VALUES ('2009-01-20', '2009-01-31', 6, 1)

SELECT SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

触发:

CREATE TRIGGER [dbo].[TR_Payments_Insert]
   ON  [dbo].[Payment]
   INSTEAD OF INSERT
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    IF NOT EXISTS(SELECT 1 FROM dbo.Payment p
              INNER JOIN Inserted i ON p.CustomerId = i.CustomerId
              WHERE (i.DateFrom >= p.DateFrom AND i.DateFrom <= p.DateTo) OR (i.DateTo >= p.DateFrom …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2008 linq-to-sql

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

ASP.Net MVC如何确定用户是否可以访问URL?

当我有用户登录时,我正在阅读有关登录循环的另一个问题,设置为返回登录后可能无法访问的URL(即管理员页面,用户使用普通帐户登录) .

WebForms下的解决方案似乎是利用该UrlAuthorizationModule.CheckUrlAccessForPrincipal方法.但是,对于使用授权属性保护的Action方法的URL不起作用.我想我可以弄清楚URL指向哪个方法并反映它以解决我的问题 - 但我似乎无法弄清楚如何从路由表中获取此信息.

有人曾经使用过这个,或者有解决方案吗?如果我能从URL获取路由信息,我想我可以完成其余的工作,但是如果有人有一个通用的解决方案 - 即.一些隐藏的方法类似于之前提到的MVC,然后这也是非常棒的.

我不是问如何检查用户是否有权访问指定的Controller/Action对.我首先需要弄清楚如何根据URL从RouteTable获取Controller/Action对.所有背景故事的原因都在于确实存在与UrlAuthorizationModule.CheckUrlAccessForPrincipalMVC 相当的情况.

asp.net-mvc authorization

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

在表行上单击事件 - 仅在没有其他"点击"的情况下触发

我遇到了一些jQuery代码的问题,我希望并且认为解决方案相对简单.

说我有一个像这样的表:

<table>
   <tr>
     <td><input type="checkbox" name="hai" value="der" /></td>
     <td><a href="mypage.php">My link</a></td>
     <td>Some data</td>
     <td>Some more data</td>
   </tr>
   ...
</table>
Run Code Online (Sandbox Code Playgroud)

现在通过JavaScript我在jQuery(document).ready()中执行以下操作;

jQuery("table tr").click(function(){
   var row = jQuery(this);
   var hasClass = row.hasClass("highlight");
   jQuery("table tr").removeClass("highlight");
   if(!hasClass){
     row.addClass("highlight");
   }
});
Run Code Online (Sandbox Code Playgroud)

所有这些都是非常简单的东西 - 我希望能够点击一行并使其突出显示,并且一次只能突出显示一行(显然在我的实际代码中我做的不止这些) - 现在这是我的问题:

当用户单击锚标记或复选框时,这也会触发行点击事件,我无法弄清楚如何过滤掉它?我知道我需要在我的点击处理程序中包含该事件,但是如何以尽可能多的浏览器工作的方式检查它?

jquery onclick

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

MSDTC的问题 - 远程事务

我们正在将我们的SQL Server移动到它自己的机器上,但是我遇到了通过MSDTC进行交易的问题.

这是ASP.Net为我生成的错误消息:

事务管理器已禁用其对远程/网络事务的支持

我试过谷歌搜索这个,但除了如何解决这个问题的Windows 2003指南之外,还没有找到更多.

谁能告诉我如何在Windows 2008上解决这个问题?(两个SqlServer + IIS框都运行Win 2k8).

谢谢!

sql-server msdtc transactions windows-server-2008

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

Linq To SQL OrderBy,使用枚举时出现问题

我在LINQ查询上运行枚举类型时遇到一些使用OrderBy扩展方法的问题.我已经使用visual studio创建了一个常规的DataContext,只需将所有内容拖放到设计器上即可.然后我创建了单独的实体模型,它们只是POCO,我使用了一个存储库模式从我的数据库中获取数据并将它们映射到我自己的实体模型中(或者更确切地说,我有一个存储库模式,它构建和IQueryable那就完成了这一切.

一切正常,除非我尝试在我已经从short/smallint映射到枚举的属性上应用OrderBy(在存储库之外).

以下是相关的代码位:

public class Campaign
{
    public long Id { get; set; }
    public string Name { get; set; }
    ....
    public CampaignStatus Status { get; set; }
    ...
}
public enum CampaignStatus : short {
    Active,
    Inactive,
    Todo,
    Hidden
}
public class SqlCampaignRepository : ICampaignRepository
{
...
    public IQueryable<Campaign> Campaigns()
    {
        DataContext db = new DataContext();
        return from c in db.Campaigns
                select new Campaign
                   {
                       Id = c.Id,
                       Name = c.Name,
                       ...
                       Status = (CampaignStatus)c.Status,
                       ...
                   }; …
Run Code Online (Sandbox Code Playgroud)

c# enums linq-to-sql

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

Mod重写问题

和其他许多人一样,我在apache中做一些非常简单的mod_rewriting时遇到了问题.

我的.htaccess中有以下内容:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)

哪个应该翻译/查看/ 4093/203?qs = val - > /view.php?advertId=4093&publisherId=203?qs=val

现在,它在使用/ View ...调用它时有效,但是在执行小写/视图时,它会重定向到正确的文件,但是我的PHP脚本中没有设置advertId和publisherId,因为它是第一个字母大写的视图而且我简单地对前面发生的事情一无所知(我一直在测试并观察这种行为只需在我的view.php上进行).

任何人都知道为什么会这样吗?

我可能想补充一下,我的服务器信息如下:

Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 
Run Code Online (Sandbox Code Playgroud)

IE浏览器.一个股票全新的debian安装默认debian包+ php-mssql.

apache mod-rewrite

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

处理MS SQL触发器中的多个记录

我不得不第一次在MSSQL中使用触发器,一般来说都很好.阅读并自己测试后,我现在意识到触发器会触发每个命令,而不是每行插入,删除或更新.

整个事情是广告系统的一些统计数据.我们的主要统计表相当大,并且在大多数情况下不包含有意义的数据.它包含每个广告点击,查看等一行.作为用户,更倾向于想要查看它,因为日X具有Y点击量和Z量视图等等.到目前为止,我们完全基于SQL查询完成了这一点,从主表中获取此类报告,但随着表的增长,该查询的执行时间也增加了.因此我们选择使用触发器来更新另一个表,从而使SQL服务器上的这一点变得更容易.

我现在的问题是使用多个记录.我所做的是创建2个存储过程,一个用于处理插入操作,另一个用于删除.我的插入触发器(写入使用单个记录)然后从Inserted表中删除数据,并将其发送到存储过程.删除触发器以相同的方式工作,并且(显然?)更新触发器与delete +插入相同.

我现在的问题是如何使用多个记录做到最好.我已经尝试过使用光标,但据我所知,我自己也看得很清楚.我也考虑过编写一些"检查" - 比如检查如果命令中有多条记录,然后继续使用光标,否则只是避免这种情况.无论如何,这是我用光标的解决方案,我想知道是否有更好的方法吗?

CREATE TRIGGER [dbo].[TR_STAT_INSERT]
   ON  [iqdev].[dbo].[Stat]
   AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    DECLARE @Date DATE 
    DECLARE @CampaignId BIGINT
    DECLARE @CampaignName varchar(500)
    DECLARE @AdvertiserId BIGINT
    DECLARE @PublisherId BIGINT
    DECLARE @Unique BIT
    DECLARE @Approved BIT
    DECLARE @PublisherEarning money
    DECLARE @AdvertiserCost money
    DECLARE @Type smallint

    DECLARE InsertCursor CURSOR FOR SELECT Id FROM Inserted
    DECLARE @curId bigint

    OPEN InsertCursor

    FETCH NEXT FROM InsertCursor INTO @curId

    WHILE @@FETCH_STATUS = 0
    BEGIN

        SELECT @Date = [Date], @PublisherId = [PublisherCustomerId], …
Run Code Online (Sandbox Code Playgroud)

sql-server triggers

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

Windows窗体WebBrowser控件和iframe

我正在尝试创建一个软件来或多或少地自动化网页上的表单填充 - 我决定使用WebBrowser控件System.Windows.Forms.这个伟大的工程,我可以很容易地操纵DOM通过webbrowser.Document等等.然而不幸的是,我正在进行自动化的网站有一个在iframe内运行的文件上传 - 这就是我被卡住的地方,我根本无法弄清楚如何能够操纵iframe的DOM内部的元素.

理想情况下,我想做的是:

HtmlElement iframe = browser.Document.GetElementById("iframe_id");
iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value", "myfile.txt");
Run Code Online (Sandbox Code Playgroud)

然后在iframe中提交表单当然 - 但是就我所见,没有任何InnerDocument属性HtmlElement,也没有找到我可以强制HtmlElement转换的类型,以便我可以访问内部DOM.

怎么做的?

.net c# browser windows iframe

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

如何证明大关系

嘿,标题可能有点偏,所以如果你知道如何把它改进,请纠正它.

作为家庭作业,我已经获得了以下几项任务:

设f(n)和g(n)为渐近正函数.证明或反驳以下每个猜想.

a. f(n) = O(g(n)) implies g(n) = O(f(n))
Run Code Online (Sandbox Code Playgroud)

现在,我真正的问题是 - 你将如何以正式的方式证明这一点?我知道上面的内容很简单,因为我可以很容易地提供一个反例来反驳它,但是为了论证,让我们说我们想要在没有反例的情况下这样做,当然这继续在其他一些例子中这不行.

我有点卡住了,我写了下面的不等式(<=小于或等于)

f(n) <= c1 * g(n)
g(n) <= c2 * f(n)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将这两个不等式组合成单个(in)方程并反驳它.我非常肯定这是一件非常简单的事情,我只是忽略了,而且我现在很愚蠢 - 但是如何做到这一点的任何指针/具体例子都会很棒,所以我应该能够工作其余的这些问题都是我自己的.

big-o

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

Javascript/jQuery/Microsoft-ajax混合中的双重加载问题

我对一些JavaScript代码有一个奇怪的问题(再次,我讨厌调试JS代码).我正在处理一个常规表 - 我从JSON调用填充,并添加了支持一些分页(我猜你可以调用它的2x分页),排序和一些行选择.一切都运行良好 - 但是当一行被DESELECTED(并且仅取消选择)时,我的add_navigate事件被触发两次,这导致一些不需要的数据重新加载 - 并且表明加载更加不需要.

首先,这是我的JS代码:

var customerType;
var selYear;
var selMonth;
var sdir;
var sort;
var page;
var noteId;
var hasDoneCall;
var customerId;

var customerIdChanged = false;


function initValues() {
    customerType = "Publisher";
    selYear = new Date().getFullYear();
    selMonth = new Date().getMonth()+1;
    sdir = false;
    sort = "CustomerName";
    page = 1;
    noteId = false;
    customerId = 0;

    hasDoneCall = location.href.indexOf('#') > 0;

}
function flash(elm, color, duration) {

    var current = elm.css('backgroundColor');

    elm.animate({ backgroundColor: 'rgb(' + color + …
Run Code Online (Sandbox Code Playgroud)

javascript jquery microsoft-ajax

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

SQL中的"动态"表?

我目前正在讨论一些关于网站想法的东西 - 我非常想让我的用户创建"Tables"来保存数据,然后允许他们查询这些数据(以比写作更怪异的方式) SQL查询,希望比使用excel更容易).

到目前为止,我的想法是使用几个表在我的数据库中表示它 - 有一个表代表一个表,一个表代表表的列,有一个表代表表中的每一行,最后一个代表值.类似于(PSEUDO SQL)的东西:

CREATE TABLE 'Tables' (
   Id INT NOT NULL PRIMARY KEY,
   NAME VARCHAR(255)
)

CREATE TABLE 'TableColumns' (
   Id INT NOT NULL PRIMARY KEY,
   TableId INT NOT NULL FOREIGN KEY ON 'Tables',
   NAME VARCHAR(255)
)

CREATE TABLE 'TableRows' (
   Id INT NOT NULL PRIMARY KEY,
   TableId INT NOT NULL FOREIGN KEY ON 'Tables',
   RowNumber INT NOT NULL
)

CREATE TABLE 'TableValues' (
   RowId INT NOT NULL PRIMARY KEY,
   ColumnId INT NOT NULL PRIMARY …
Run Code Online (Sandbox Code Playgroud)

.net c# t-sql database-design entity-attribute-value

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