小编Fru*_*bat的帖子

存储过程中的分页,排序和过滤(SQL Server)

我正在寻找编写存储过程的不同方法来返回数据的"页面".这是用于ASP ObjectDataSource,但它可以被认为是一个更普遍的问题.

要求是基于通常的寻呼参数返回数据的子集; startPageIndex并且maximumRows,还有一个sortBy允许对数据进行排序的参数.还传递了一些参数来过滤各种条件下的数据.

一种常见的方法似乎是这样的:

[方法1]

;WITH stuff AS (
    SELECT 
        CASE 
            WHEN @SortBy = 'Name' THEN ROW_NUMBER() OVER (ORDER BY Name)
            WHEN @SortBy = 'Name DESC' THEN ROW_NUMBER() OVER (ORDER BY Name DESC)
            WHEN @SortBy = ... 
            ELSE ROW_NUMBER() OVER (ORDER BY whatever)
        END AS Row,
        ., 
        ., 
        .,
    FROM Table1
    INNER JOIN Table2 ...
    LEFT JOIN Table3 ...
    WHERE ... (lots of things to check)
    ) 
SELECT *
FROM stuff 
WHERE (Row …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures

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

使用经典ASP区分测试和生产的最佳方法

我继承了经典的ASP应用程序。有很多事情需要整理,但我被迫逐渐做一些事情(我不能对每个脚本进行全面修改)。

系统中的某些位置带有硬编码的URL。必须先更改一些脚本,然后才能将其升级为实时Web根名称,以便将测试Web根名称更改为实时Web根名称。我正在寻找避免这种情况的方法(本质上是通过编程方式解决服务器问题)。

不难 简单检查Request(“ SERVER_NAME”)和以下内容:

appName = Request.ServerVariables("SCRIPT_NAME")
i = InStr(2, appName, "/")   'keep initial "/"
 If i > 0 Then
    appName = Left(appName, i)
End If
Run Code Online (Sandbox Code Playgroud)

这可以在“无处不在”脚本中完成。然后只需设置一个全局变量以容纳完整的“ http(s):// server / app /”或一个MakeUrlAbsolute()的函数,然后就可以使用了。

但是,这让我有点怀疑。这样是否可以更好地存储在应用程序级别?这建议在Global.asa中进行设置,例如:

Sub Application_OnStart()
    Application("WebRoot") = ...
End Sub
Run Code Online (Sandbox Code Playgroud)

但是现在我无法获得SERVER_NAME的权限,因此我只能使用2个不同的Global.asa文件(每个环境一个)。

这是我唯一的选择吗?在Application_OnStart中的每个请求或硬代码上都可以解决吗?也许使用Session_OnStart是一个折衷方案。还是有一些巧妙的技巧来访问Application_OnStart中的信息?也许人们会采用硬编码,因为Global.asa不会经常更改。

global.asa asp-classic

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

撇号会导致查询问题

当我对表的填充执行查询时,我只在两次出现时出错.特别是,当name字段有这样的值时:

K'Ogladbach
Run Code Online (Sandbox Code Playgroud)

现在撇号引起了一个问题,因为查询将此命令解释为新值,这是错误的.这是我在SQL中查询的结构:

string sql = @"insert into Team (name, code, shortName, squadMarketValue, 
                    crestUrl, link_self, link_fixtures, link_players, caption) 
                    values ('" + item.name + "', '" + item.code + "', '" +
                    item.shortName + "', '" + item.squadMarketValue + "', '" +
                    item.crestUrl + "', '" + item._links.self.href + "', '" +
                    item._links.fixtures.href + "', '" + item._links.players.href + "', '" + 
                    campionato + "')";
Run Code Online (Sandbox Code Playgroud)

你如何才能看到每个新值都被提出来' value ',所以如果在值中有" ' "一个问题,因为查询失败了表填充.希望有一个解决方案.

c# t-sql sql-server parameters wpf

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