小编Nic*_*aro的帖子

哪种设计最为可取:test-create,try-create,create-catch?

我们假设有一个创建用户的操作.如果存在指定的电子邮件或用户名,则此操 如果失败,则需要确切知道原因.在我看来,有三种方法可以做到这一点,我想知道是否有明显的赢家.

所以,这是一个类用户:

class User
{
    public string Email { get; set; }
    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有三种方法可以完成创建操作:

测试创建

if (UserExists(user)) act on user exists error;
if (UsernameExists(user)) act on username exists error;
CreateUser(user);
Run Code Online (Sandbox Code Playgroud)

UserExists和UsernameExists向db服务器发出请求以进行验证.在CreateUser中再次重复这些调用以确保正确使用API​​.如果验证失败,我会在两种情况下抛出ArgumentOutOfRangeException.因此性能受到了打击.

尝试 - 创建

enum CreateUserResultCode
{
    Success,
    UserAlreadyExists,
    UsernameAlreadyExists
}

if (!TryCreate(user, out resultCode))
{
    switch(resultCode)
    {
        case UserAlreadyExists: act on user exists error;
        case UsernameAlreadyExists: act on username exists error;
    }
}
Run Code Online (Sandbox Code Playgroud)

这种模式只进行一次验证,但我们采用所谓的错误代码,这不是一种好的做法.

创建,捕捉

try
{
    CreateUser(user);
}
catch(UserExistsException)
{ …
Run Code Online (Sandbox Code Playgroud)

c#

64
推荐指数
3
解决办法
1865
查看次数

.NET进程监视器

有没有办法确定特定机器上次运行进程的时间?

我可以使用以下内容来确定某个进程是否正在运行,但如果该进程已停止,则该应用程序无法获取该进程.

Process[] process = Process.GetProcessesByName(processName, serverName);
Run Code Online (Sandbox Code Playgroud)

c# system process

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

如何在Postgres sql函数中引用命名参数?

Postgres noobie在这里.

我正在尝试将SQL Server存储过程转换为Postgres函数.目前无法弄清楚如何将此SQL行转换为Postgres.

SQL Server:

input: @name = null

SELECT *
FROM table
WHERE name = ISNULL(@name, name)
Run Code Online (Sandbox Code Playgroud)

Postgres的:

input: n = null

SELECT *
FROM table
WHERE name = COALESCE(n, name)
Run Code Online (Sandbox Code Playgroud)

我收到错误"列n不存在".如何在Postgres函数的select语句中引用参数?

更新:

Postgres函数的定义

CREATE OR REPLACE FUNCTION fn_name (n VARCHAR(32) = NULL, name OUT varchar(32), description OUT varchar(64))
RETURNS setof record
AS 
$$
    SELECT u.name
        , u.description
    FROM table_a u
    WHERE u.name = COALESCE(n, u.name);

$$
LANGUAGE sql;
Run Code Online (Sandbox Code Playgroud)

sql postgresql stored-procedures

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

SQL - 获取月/季的数字日

使用SQL Server 2005:

如何在查询中获取该季度和季度的数字日?

DECLARE @DATE DATETIME
SET @DATE = GETDATE()

SELECT DATEPART(dy, @DATE) AS DayOfYear
    --, <something> AS DayOfQuarter
    --, <something> AS DayOfMonth
    , DATEPART(dw, @DATE) AS DayOfWeek
Run Code Online (Sandbox Code Playgroud)

提前致谢!

sql sql-server sql-server-2005

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

在Postgres中将Const整数转换为Bigint

运行以下脚本时,我收到以下错误.我的目标是在Postgres中创建一个函数,将1作为bigint返回.请帮忙!

hashtagpostgresnoobie

错误:由于OUT参数,函数结果类型必须是bigint

CREATE OR REPLACE FUNCTION GetNumberOne(
    OUT numberone bigint)
  RETURNS SETOF record AS
$BODY$

    SELECT CAST(1 AS BIGINT) AS "NUMBERONE";

$BODY$
  LANGUAGE sql VOLATILE;
Run Code Online (Sandbox Code Playgroud)

sql postgresql casting type-conversion

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

两个用于排序时间戳日期的sql

我有98w行数据.当我想用pub_time对数据进行排序时,我发现了一件有趣的事情.

这是SQL:

select * 
from t_p_blog_article_info t  
order by t.pub_time desc
Run Code Online (Sandbox Code Playgroud)

它花了19s.

select * 
from t_p_blog_article_info t 
where t.pub_time > to_date( '1900-01-01 01:00:00', 'yyyy-mm-dd   hh24:mi:ss ')  
order by t.pub_time desc
Run Code Online (Sandbox Code Playgroud)

它的成本为0.2秒.

我想知道,为什么?

sql oracle performance datestamp

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

SVN存储库结构

我正准备建立一个SVN存储库,并且想知道是否有人为repo结构提供了一个很好的例子.我目前在想:

开发
..应用
.... App1
......主干
......分支
......标签
..数据库
..第三方

虽然这种结构可能包含我们需要的一切,但我想让它更加颗粒化.有什么想法吗?

svn repository repository-design

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

在C#中计算过去的日期时间

我正在使用C#中的算法来根据具有以下特征的输入字符串计算过去的DateTime:

该字符串包含一个整数,后跟"D","M"或"Y",例如"1D"或"90M".

输出将是DateTime.Now减去相应的天数,月数或年数.

我遇到的问题是,例如,如果我在Regex(D,M或Y)上切换输入字符串并从DateTime.Now中减去相应的TimeSpan,则新的TimeSpan()构造函数不接受数月或数年,只有几天

if (new Regex(@"[0-9]+D").IsMatch(value))
{
    newDate = DateTime.Now - TimeSpan(Int32.Parse(value.Replace("D", "")), 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

如果输入字符串是几天,这个逻辑很好,但TimeSpan的构造函数不接受数月或数年,如果我假设每个月有30天,或者每年有365天,这将是非常不准确的.

有没有人想过如何实现这个算法?

谢谢!

c# datetime timespan

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

这个命名惯例是什么?

我正在查看具有多个开发人员的多个命名约定的代码 - 一个真正的享受.其中包括匈牙利语("s_year","s_day")以及其他风格("yearS","dayS").

有谁知道这种风格叫什么?对于奖励积分,你知道它起源的地点/时间吗?

免责声明:奖励积分是假设的,仅根据要求授予.请提供5-12周的送货时间.

编辑:我想补充一点,在同一个文件中有第三种表示法("sYear","sDay").这是命名约定的帽子戏法!

naming-conventions

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

如何:在SQL Server 2005中管理多个重叠索引

为了举例,我有一个表ABCDEFG H的表.

我在表上创建了两个与最常用查询对应的索引.第一个是BCD和E列.第二个是BCDE和F.

使用这些列的查询被称为相同的次数,并且每个查询都针对索引进行了优化.

我的问题是 - 由于我在这个表上有多个索引,行大小非常​​大.我想删除其中一个索引,但无法决定哪一个.

我的问题是 - 如果我删除第一个索引(BCDE),使用这些列的查询是否仍然会被(BCDEF)上的索引优化?

sql sql-server indexing sql-server-2005

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