问题列表 - 第3198页

在文本列中存储数字数据时出现问题 - SELECT ... BETWEEN

几年前,我在一个数字主键存储在[SQL Server] varchar列中的系统上工作,所以当使用BETWEEN运算符查询时,我很快就解开了:

SELECT ID FROM MyTable WHERE ID BETWEEN 100 AND 110;
Run Code Online (Sandbox Code Playgroud)

结果:

100
102
103
109
110
11
Run Code Online (Sandbox Code Playgroud)

这简直就是糟糕的设计.但是,我正在研究第三方ERP系统,你可以想象它需要通用和灵活; 因此,我们有各种表格,其中提供字母数字字段,其中业务仅使用数字 - 因此可能发生类似的问题.

我猜这是一个很常见的问题; 我有一个简单的解决方案,但我很好奇其他人如何解决这些问题.

我的简单解决方案是:

SELECT ID FROM MyTable 
WHERE ID BETWEEN iStartValue AND iEndValue 
AND (LENGTH(ID) = LENGTH(iStartValue)
 OR LENGTH(ID) = LENGTH(iEndValue));
Run Code Online (Sandbox Code Playgroud)

您可能会说,这是一个Oracle系统,但我通常在SQL Server中工作 - 因此可能更喜欢与数据库无关的解决方案.

编辑1:从头开始 - 我不明白为什么专业解决方案也不受欢迎.

编辑2:感谢所有回复.我不确定我是否感到失望,没有一个明显的,复杂的解决方案,但我相应很高兴看起来我没有错过任何明显的错误!

我想我还是更喜欢自己的解决方案; 它很简单而且有效 - 我有什么理由不使用它吗?我无法相信其他解决方案提供的效率要低得多.

我意识到在理想世界中,这个问题不会存在; 但不幸的是,我不是在一个理想的世界里工作,而且往往是一个充分利用糟糕情况的案例.

sql performance

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

如何在Perl程序中覆盖硬编码配置?

我有一个Perl脚本,它在顶部附近为它将使用的目录和文件设置变量.它还需要将一些变量设置为命令行参数.例:

use Getopt::Long;

my ($mount_point, $sub_dir, $database_name, $database_schema);
# Populate variables from the command line:
GetOptions(
    'mount_point=s'       => \$mount_point,
    'sub_dir=s'           => \$sub_dir,
    'database_name=s'     => \$database_name,
    'database_schema=s'   => \$database_schema
);
# ...  validation of required arguments here

################################################################################
# Directory variables
################################################################################
my $input_directory    = "/${mount_point}/${sub_dir}/input";
my $output_directory   = "/${mount_point}/${sub_dir}/output";
my $log_directory      = "/${mount_point}/${sub_dir}/log";
my $database_directory = "/db/${database_name}";
my $database_scripts   = "${database_directory}/scripts";

################################################################################
# File variables
################################################################################
my $input_file       = "${input_dir}/input_file.dat";
my $output_file      = "${output_dir}/output_file.dat";
# ... etc
Run Code Online (Sandbox Code Playgroud)

这在我的开发,测试和生产环境中工作正常.但是,我试图更容易地覆盖某些变量(无需进入调试器)进行开发和测试.(例如,如果我想设置我的input_file ="/ tmp/my_input_file.dat").我的想法是使用GetOptions函数来处理这个,如下所示: …

perl configuration getopt-long

0
推荐指数
2
解决办法
1421
查看次数

正则表达式提取HTML正文内容

我正在寻找一个正则表达式语句,让我从XHTML文档的body标签之间提取HTML内容.

我需要解析的XHTML将是非常简单的文件,例如,我不必担心JavaScript内容或<![CDATA[标签.

下面是我要解析的HTML文件的预期结构.由于我完全知道我将要使用的HTML文件的所有内容,因此这个HTML代码段几乎涵盖了我的整个用例.如果我能得到一个正则表达式来提取这个例子的主体,我会很高兴.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
    </title>
  </head>
  <body contenteditable="true">
    <p>
      Example paragraph content
    </p>
    <p>
      &nbsp;
    </p>
    <p>
      <br />
      &nbsp;
    </p>
    <h1>Header 1</h1>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

从概念上讲,我一直在尝试构建一个匹配内部正文内容的所有正则表达式字符串.有了这个,我会使用C#Regex.Split()方法来获取正文内容.我以为这个正则表达式:

((.|\n)*<body (.)*>)|((</body>(*|\n)*)
Run Code Online (Sandbox Code Playgroud)

...会有所作为,但它似乎与我在RegexBuddy中的测试内容完全无关.

html c# regex xhtml

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

找到所有未使用的变量

通常,在Netbeans中很容易看到未使用的变量,只是一条灰色的波浪线.

但是,如何在我的项目或单个类中找到所有这些未使用的变量?

原因:我正在调试一个有很多复制和粘贴的代码库,但是没有仔细完成.复制和粘贴后没有替换正确的变量有很多错误.

java netbeans

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

Excel Interop - 效率和性能

我想知道我可以做些什么来提高Excel自动化的性能,因为如果你在工作表中有很多事情,它可能会很慢......

这里有一些我发现自己:

  • ExcelApp.ScreenUpdating = false - 关闭重绘屏幕

  • ExcelApp.Calculation = Excel.XlCalculation.xlCalculationManual - 关闭计算引擎,以便Excel在单元格值更改时不会自动重新计算(在完成后将其重新打开)

  • 减少对Worksheet.Cells.Item(row, col)和的调用Worksheet.Range- 我不得不轮询数百个单元格以找到我需要的单元格.实现一些单元格位置的缓存,将执行时间从大约40秒减少到大约5秒.

什么样的互操作会对性能造成严重影响,应该避免?你还能做些什么来避免不必要的处理?

c# excel performance interop vsto

62
推荐指数
5
解决办法
3万
查看次数

如何在CLR UDF中返回nvarchar(max)?

假设以下定义:

/// <summary>
/// Replaces each occurrence of sPattern in sInput with sReplace. This is done 
/// with the CLR: 
/// new RegEx(sPattern, RegexOptions.Multiline).Replace(sInput, sReplace). 
/// The result of the replacement is the return value.
/// </summary>
[SqlFunction(IsDeterministic = true)]
public static  SqlString FRegexReplace(string sInput, string sPattern, 
      string sReplace)
{
    return new Regex(sPattern, RegexOptions.Multiline).Replace(sInput, sReplace);
}
Run Code Online (Sandbox Code Playgroud)

在一个传递nvarchar(max)sInput具有长度> 4000将导致被截断的值(即,在调用此UDF的结果是nvarchar(4000)相对于nvarchar(max).

c# sql-server clr nvarchar

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

Delphi菜单合并问题

我正在尝试将两个主菜单合并在一起,但是在使用子项获得正确结果时遇到了问题.我在我的MenuItems上使用GroupIndex属性来控制合并/插入.

Menu1(带有groupindices)是这样的

  • 文件= 10
    • 开放= 11
    • 关闭= 12
  • 编辑= 20
    • 切= 21
    • 糊= 22
  • 帮助= 90
    • 关于= 91

Menu2是这样的

  • 编辑= 20
    • 清除= 23
  • 窗口小部件30 =
    • WIDGET1 = 31
    • WIDGET2 = 32

而我正在做

  Menu1.Merge(Menu2);
Run Code Online (Sandbox Code Playgroud)

我希望组合菜单在Edit菜单中有一个新的顶级菜单"Widgets"和一个新的"Clear"命令."小部件"工作正常,但编辑菜单丢失了剪切和粘贴,这不是我想要的.

如何停止剪切和粘贴命令消失?

delphi vcl menu

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

如何将滚动条添加到扩展器面板?

我在扩展器面板内部有一个堆栈面板,我在程序中添加了复选框.目前,exanpander停在窗体的底部,但堆栈面板不断增长.我希望堆栈面板由扩展器限制并滚动以显示复选框.我是否需要在列表框中设置复选框才能获得滚动功能?

<Grid>
    <Expander Header="Expander1"  Margin="0,0,0,2" Name="Expander1" VerticalAlignment="Top" Background="Coral">
        <StackPanel Name="StackScroll" Margin="0,0,0,2"  Background="Aqua"></StackPanel>
    </Expander>
</Grid>
Run Code Online (Sandbox Code Playgroud)

");

wpf

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

为我的应用程序的脚本需求构建最小的Python?

你有什么建议我的应用程序的脚本需求构建一个非常简约的Python(2.x)版本的建议.

我的主要动机是尽可能降低脚印(内存和磁盘方式),以便我的原生应用程序不会遭受任何重大性能损失.甚至考虑Python DLL大小也是因为可能会增加应用程序的启动时间.

我们可以像Lua或其他轻量级解决方案一样低吗?

python scripting python-embedding

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

Web服务器日志分析工具

有关准确的Web日志分析工具的任何建议,以生成IIS日志的报告?我们使用了WebTrends,但我觉得它不准确.

logging analysis

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