我需要计算表格两行之间的列的差异.有什么方法可以直接在SQL中执行此操作吗?我正在使用Microsoft SQL Server 2008.
我正在寻找这样的东西:
SELECT value - (previous.value) FROM table
Run Code Online (Sandbox Code Playgroud)
想象一下"previous"变量引用了最新选择的行.当然,对于类似的选择,我最终将在具有n行的表中选择n-1行,这不是可能的,实际上正是我需要的.
这有可能吗?
我想知道是否可以使用.NET Framework 3.5将FTS与LINQ一起使用.我正在搜索我没有找到任何有用的文档.
有没有人有这方面的经验?
任何人都知道是否可以在C++上进行部分类定义?
就像是:
file1.h:
class Test {
public:
int test1();
};
file2.h:
class Test {
public:
int test2();
};
对我而言,定义具有与平台无关的通用功能的多平台类似乎非常有用,因为继承是一种对多平台类无用的支付成本.
我的意思是,在运行时,您将永远不会有两个多平台特化实例,仅在编译时.继承可能对满足您的公共接口需求很有用,但之后它不会在运行时添加任何有用的东西,只需要成本.
此外,您将不得不使用丑陋的#ifdef来使用该类,因为您无法从抽象类创建实例:
class genericTest {
public:
int genericMethod();
};
然后让我们说win32:
class win32Test: public genericTest {
public:
int win32Method();
};
有可能:
class macTest: public genericTest {
public:
int macMethod();
};
我们认为win32Method()和macMethod()都调用genericMethod(),你必须使用这样的类:
#ifdef _WIN32 genericTest *test = new win32Test(); #elif MAC genericTest *test = new macTest(); #endif test->genericMethod();
现在想一下继承只对它们提供一个依赖于特定于平台的genericMethod()有用,但是由于这个原因你需要花费两个构造函数.你的代码周围也散布着丑陋的#ifdef.
这就是为什么我在寻找部分课程.我可以在编译时定义特定平台依赖的部分结束,当然,在这个愚蠢的例子中,我仍然需要一个丑陋的#ifdef在genericMethod()中,但还有另一种方法可以避免这种情况.
我的应用程序中有以下代码:
using (var database = new Database()) {
var poll = // Some database query code.
foreach (Question question in poll.Questions) {
foreach (Answer answer in question.Answers) {
database.Remove(answer);
}
// This is a sample line that simulate an error.
throw new Exception("deu pau");
database.Remove(question);
}
database.Remove(poll);
}
Run Code Online (Sandbox Code Playgroud)
此代码像往常一样触发Database类Dispose()方法,并且此方法自动将事务提交到数据库,但这会使我的数据库处于不一致状态,因为答案将被删除,但问题和轮询不会.
我可以在Dispose()方法中检测到它因为异常而不是关闭块的常规结束而被调用,所以我可以自动执行回滚吗?
我不想手动添加try ... catch块,我的目标是使用using块作为逻辑安全事务管理器,因此如果执行是干净的则提交到数据库,如果发生任何异常则提交回滚.
你有什么想法吗?
我正在寻找用于财务数据的定点标准,你知道任何值得尝试的吗?您对手工制作的定点课程的表现有什么经验吗?
有没有更好的方法来观察表中的新条目,除了每隔n个时间点或类似的选择?
我有一个外部程序经常更新的表,客户端可以在到达时监视这些新数据,如何在不设置固定周期的可重复选择语句的情况下进行此操作?
我正在将巴西股票市场数据导入SQL Server数据库.现在我有一张表格,其中包含三种资产的价格信息:股票,期权和远期合约.我仍然在2006年的数据,该表有超过50万的记录.我有更多12年的数据需要导入,因此该表肯定会超过一百万条记录.
现在,我的第一种优化方法是将数据保持在最小值,因此我将行大小减少到平均60字节,并使用以下列:
[Stock] [int] NOT NULL [Date] [smalldatetime] NOT NULL [Open] [smallmoney] NOT NULL [High] [smallmoney] NOT NULL [Low] [smallmoney] NOT NULL [Close] [smallmoney] NOT NULL [Trades] [int] NOT NULL [Quantity] [bigint] NOT NULL [Volume] [money] NOT NULL
现在,第二种优化方法是制作聚簇索引.实际上主要索引是自动clusted的,我用Stock和Date字段作为复合索引.这是独一无二的,我不能在同一天为同一股票提供两个报价数据.
clusted index确保来自同一股票的报价保持在一起,并且可能按日期排序.这第二个信息是真的吗?
目前拥有50万条记录,从特定资产中选择700条报价大约需要 200 毫秒.我相信随着桌子的增长,这个数字会越来越高.
现在对于第三种方法,我正在考虑将表格分成三个表格,每个表格针对特定市场(股票,期权和远期).这可能会将表格大小减少1/3.现在,这种方法有用还是无关紧要?现在这个表有50mb的大小,所以它可以完全适合RAM而不会有太多麻烦.
另一种方法是使用SQL Server的分区功能.我不太了解它,但我认为它通常在表很大时使用,你可以跨越多个磁盘来减少I/O延迟,我是对的吗?在这种情况下,分区是否有用?我相信我可以在不同的表中划分最新的值(最近几年)和最旧的值,寻找最新数据的概率更高,而小分区它可能会更快,对吧?
什么是使其尽可能快的其他好方法?该表的主要选择用途是用于从特定资产中寻找特定范围的记录,例如最近3个月的资产X.将会有另一个用法,但这将是最常见的,可能超过3k执行用户同时.
我知道大多数人认为这是一种不好的做法但是当你试图使你的类公共接口只使用引用,保持指针内部并且只在必要时,我认为没有办法回报一些东西告诉你正在寻找的价值容器中不存在.
class list {
public:
value &get(type key);
};
让我们认为你不希望在类的公共接口中看到危险的指针,在这种情况下如何返回未找到的,抛出异常?
你对此有何看法?你是否返回一个空值并检查它的空状态?我实际上使用throw方法,但我介绍了一种检查方法:
class list {
public:
bool exists(type key);
value &get(type key);
};
因此,当我忘记检查值是否存在时,我得到一个异常,这实际上是一个例外.
你会怎么做?
我正在研究股票交易所信息平台,我们正在考虑在我们的平台和自制的Excel文件之间提供链接.金融市场仍然受旧DDE服务器方式的束缚,现在它仍然重要吗?
哪些是在Excel文件,OLE DB查询上自动在线数据更新的替代方案?我想知道是否有人在C#和.NET中实现OLE DB提供程序的任何示例.
我们的API将完全在线和RESTful,有任何Web服务替代方案将此数据链接到Excel?我记得Excel 2003有一个Web服务工具包但我在Excel 2007中找不到任何接近的东西.
编辑:这个问题更多的是关于语言工程而不是C++本身.我以C++为例来展示我想要的东西,主要是因为我每天都在使用它.我并不想知道它是如何工作的C++,但打开它如何的讨论会来完成.
这不是它现在的工作方式,这就是我希望它可以完成的方式,这肯定会打破C兼容性,但这就是我认为extern"C"的全部意义.
我的意思是,在您现在声明的每个函数或方法中,您必须显式写入该对象将通过引用在其上添加前缀作为参考运算符.我希望每个非POD类型都会通过引用自动发送,因为我使用了很多,实际上对于每个大小超过32位的对象,这几乎是我的每一类.
让我们举例说明它是如何做的,假设a,b和c为类:
class example {
public:
int just_use_a(const a &object);
int use_and_mess_with_b(b &object);
void do_nothing_on_c(c object);
};
现在我想要的是:
class example {
public:
int just_use_a(const a object);
int use_and_mess_with_b(b object);
extern "C" void do_nothing_on_c(c object);
};
现在,do_nothing_on_c()的行为就像今天一样.
至少对我来说这会很有趣,感觉更清楚,而且如果你知道每个非POD参数都是通过引用而来的,我相信如果你必须明确地声明它,那么错误将是相同的.
对于这种变化的另一种观点,来自C的人,参考运算符在我看来是一种获取变量地址的方法,这就是我用来获取指针的方式.我的意思是,它是相同的运算符,但在不同的上下文中具有不同的语义,对你来说这不是觉得有点不对吗?
在ASP.NET MVC中,我们需要为所有控制器使用后缀"Controller".这似乎是不必要的限制 - 有技术原因吗?
我大多只是好奇,但可以看到更灵活的命名规则可以改善代码组织的情况.难道不能使用反射来轻松地发现可能的控制器类来搜索Controller派生类吗?或者要求控制器类标有ControllerAttribute?
我的应用程序有一个Silverlight菜单,以图像为背景.我在特定位置和大小使用一些空的HyperlinkButton来模拟图像上的真实按钮(想象为HTML图像映射):
<HyperlinkButton x:Name="Portfolio" Width="86" Height="40" Canvas.Top="50" NavigateUri="/portfolio"/>
<HyperlinkButton x:Name="Analysis" Width="79" Height="40" Canvas.Top="50" Canvas.Left="124" NavigateUri="/analysis" BorderThickness="0"/>
<HyperlinkButton x:Name="News" Width="77" Height="40" Canvas.Top="50" Canvas.Left="240" NavigateUri="/news"/>
<HyperlinkButton x:Name="Questions" Width="80" Height="40" Canvas.Top="50" Canvas.Left="357" NavigateUri="/questions"/>
<HyperlinkButton x:Name="Companies" Width="80" Height="40" Canvas.Top="50" Canvas.Left="477" NavigateUri="/companies"/>
Run Code Online (Sandbox Code Playgroud)
问题是,当我单击这些按钮时,它会在点击事件期间显示与超链接按钮区域对应的蓝色边框.有一种方法可以避免显示出来吗?
我想有一个函数来修改一些变量参数列表,但它们都是值类型(int,string).有一种方法可以让params关键字与ref关键字一起使用或者接近这个关键字吗?
public void funcParams(params object[] list)
{
/* Make something here to change 'a', 'b' and 'c' */
}
public void testParams()
{
int a = 1, b = 2, c = 3;
funcParams(a, b, c);
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在努力让我的生活变得更容易,制作一个修改对象字段的方法.我正在使用Cecil进行一些动态代码生成,我试图避免编写过多的IL生成代码.
为了简化,我想通过引用传递字段列表,我需要更改为一个更改它们的函数,而不是通过生成相应的IL来更改它们.一些参数可以为空,使代码生成更加痛苦.在这种情况下,使用一些重载方法而不是params将没有多大用处.
c++ ×4
sql-server ×3
c# ×2
.net ×1
asp.net-mvc ×1
automation ×1
bigtable ×1
containers ×1
database ×1
dde ×1
excel ×1
exception ×1
fixed-point ×1
hyperlink ×1
linq ×1
math ×1
mysql ×1
oledb ×1
optimization ×1
params ×1
performance ×1
reference ×1
semantics ×1
silverlight ×1
sql ×1
syntax ×1
using ×1