小编A-K*_*A-K的帖子

是否有类似于NUnit的C++单元测试库?

我们需要将使用C#和NUnit开发的单元测试工具迁移到在Red Hat Linux上运行的C++ .

我们希望尽量减少迁移工作.

我们正在阅读这样的资源:

http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle

但我们没有看到任何类似于NUnit的东西.

c++ linux nunit unit-testing

5
推荐指数
4
解决办法
8923
查看次数

千行的最佳数据库设计是什么

我即将启动一个数据库设计,它将简单地管理公司下的用户.

  • 每家公司都有一个可以管理用户的管理区域
  • 每家公司将拥有约25.000名用户
  • 客户认为有大约50家公司开始

我的主要问题是

我应该根据公司创建表格吗?喜欢

users_company_0001 users_company_0002 users_company_0003 ...

因为每个公司永远不会使用"其他"用户,并且不需要在所有user_company中对不同的表进行求和/计数(一个简单的方法JOIN可以做到这一点,虽然它更昂贵(时间)它将起到主要图片的作用,这将永远不会被需要.

或者我应该创建一个users表(50 x 25000)1 250 000个用户(并且还在增长).

我正在考虑第一个选项,但是,我不确定如何在这样的布局上使用Entity Framework ...我可能需要回到90年代并手动生成我的数据逻辑层.

它是对包含公司标识的商店程序的简单调用

你会建议什么?

系统应用程序将是ASP.NET(可能是MVC,我仍然试图解决这个问题,因为我所有的知识都是关于webforms的,虽然我看到Scott Hanselman MVC视频 - 接缝很容易 - 但我知道它不会那么容易问题将来临,我将花费更多时间来修复它们,以及Microsoft SQL.

sql-server database-design database-normalization

5
推荐指数
2
解决办法
373
查看次数

存储过程语法错误(MSSQL)

下面提到的存储过程在创建时给出错误

Msg 156, Level 15, State 1, Procedure crosstab, Line 23
Incorrect syntax near the keyword 'pivot'.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这个错误?

以下是脚本:

CREATE PROCEDURE crosstab 
@select varchar(8000),
@sumfunc varchar(100), 
@pivot varchar(100), 
@table varchar(100) 
AS

DECLARE @sql varchar(8000), @delim varchar(1)
SET NOCOUNT ON
SET ANSI_WARNINGS OFF

EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2')
EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server stored-procedures dynamic-sql

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

关系数据仓库中的参照完整性.这值得么?什么是替代品?

如果你必须使用SQL Server 2008构建一个圣经比例的关系数据仓库,你会使用外键来强制数据完整性,还是会使用其他方法?

我喜欢外键,因为你只需要将它们弄好一次,它们总是在那里保护完整性.我正在考虑去禁用,加载,启用路由.

有什么想法吗?

提前致谢.

sql-server database-design referential-integrity data-warehouse

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

是否有理由永远不会使用主键列?

我有一个例程,它将创建单独的表(Sql Server 2008)来存储我的应用程序生成的报告的结果(Asp.net 3.5).每个报告都需要自己的表,因为表的列会根据报告设置而有所不同.一个表将包含10-5,000行之间,很少超过10,000行.

以下使用规则适用:

  • 存储后,数据将永远不会更新.
  • 无论何时访问表的结果,都将检索所有数据.
  • 没有其他表需要与此表执行连接.

知道这一点,是否有理由在表上创建PK索引列?这样做是否有助于以任何方式检索数据的性能,如果可以,这将超过插入数据时更新索引的额外负载(我知道10K记录的数量相对较少,但这个解决方案需要是能够扩展).

更新:以下是有关正在处理的数据的更多详细信息,这些信息将在每个报告的一个表的当前设计决策中进行:

  • 表将记录一组数值(基于报告设置在运行时设置),这些数值对应于一组不同的参考varchar值(也基于报告设置在运行时设置).
  • 每当检索到数据时,在将输出显示给用户之前,将需要在服务器上进行一些后处理(因此我将始终检索所有值).

我也怀疑有人声称每次报告运行时都必须创建一个新表.但是,考虑到每次运行报告时都可能需要不同的列(数量,名称和数据类型),我看不到一个很好的选择.

我能想到的另一件事是拥有一个ID列(标识ReportVersionID,对应于另一个表),ReferenceValues列(varchar字段,包含所有引用值,按指定顺序,由一些分隔符分隔)和NumericValues列(与ReferenceValues相同,但对于数字),然后当我检索结果时,将所有内容放入系统中的专用对象,根据定义的分隔符分隔值).这看起来更合适吗?

database sql-server indexing database-design primary-key

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

sqlserver中的sql-Locks概念

我需要知道sqlserver中的锁概念为什么要使用它?以及任何一个例子.是任何pdf或ppt请指定

sql sql-server

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

此UPDATE语句中是否存在可能的竞争条件?

我正在编写一个同步软件,它将在一个DB中进行所有更改并将它们同步到另一个DB.为此我在表格中添加了T两列:

alter table T add LastUpdate rowversion, LastSync binary(8) not null default 0
Run Code Online (Sandbox Code Playgroud)

现在,我可以轻松选择自上次同步以来已更改的所有行:

select * from T where LastUpdate > LastSync
Run Code Online (Sandbox Code Playgroud)

但是在执行同步之后,我应该使两个字段相等.但是更新行也会更新时间戳,所以我必须这样做:

update T set LastSync=@@DBTS+1 where ID=@syncedId
Run Code Online (Sandbox Code Playgroud)

但我想知道 - 这总是有效吗?如果我读取了值,@@DBTS然后另一个用户设法在我的行提交之前的某个地方插入/更新一行,该怎么办?这是冒险的代码吗?如果是的话 - 它怎么能变得更好?

sql-server timestamp rowversion race-condition database-concurrency

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

ADO.Net:重用打开的 SqlConnection 还是每次都获取一个新的?

在发布这个问题之前,我已经在这个网站上阅读了几个答案:like thisthis。每个人似乎都同意“c# 应用程序池针对对同一数据库的多次调用进行了优化”。

但是,如果我从池中获得连接,我仍然观察到显着的性能损失。这是我的基准:

    private const string localConnString = "Data Source=(local);Integrated Security=SSPI;database=MyTest;Pooling=true";


    [Test]
    public void GetNewConnectionEveryTime()
    {
        var stopwatch = new Stopwatch();
        stopwatch.Start();
        for (var i = 0; i < 1000; i++)
        {
            using (var conn = new SqlConnection(localConnString))
            {
                conn.Open();
                const string saveTrancount = "EXEC dbo.TestTran";
                ExecuteSql(conn, saveTrancount);
            }
        }
        stopwatch.Stop();
        Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
        //Time elapsed: 00:00:00.5576016
    }

    [Test]
    public void ReuseOneConnection()
    {
        var stopwatch = new Stopwatch();
        stopwatch.Start();
        using (var conn = new …
Run Code Online (Sandbox Code Playgroud)

ado.net sql-server-2008 sql-server-2008-r2 c#-4.0

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

MailMessage忽略我的换行符

我正在调用以下代码:

public static void SendMessage(string sender, string recipient,string subject,string body)
{
    var message = new MailMessage(sender, recipient, subject, body);
    _smtpClient.Send(message);
}
Run Code Online (Sandbox Code Playgroud)

消息正文中有换行符,也就是Environment.NewLine,但是当我在Outlook中打开消息时,它们不在那里.我错过了什么?

c# smtp

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

如何在NpgSql连接字符串中指定ApplicationName

是否可以在NpgSql连接字符串中指定ApplicationName?以下资源通常有帮助,但在这种情况下它什么也没说:Npgsql连接字符串

postgresql ado.net npgsql c#-4.0

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