我有一个表记录随时间变化的值,类似于以下内容:
RecordId Time Name
========================
1 10 Running
2 18 Running
3 21 Running
4 29 Walking
5 33 Walking
6 57 Running
7 66 Running
Run Code Online (Sandbox Code Playgroud)
查询此表后,我需要一个类似于以下的结果:
FromTime ToTime Name
=========================
10 29 Running
29 57 Walking
57 NULL Running
Run Code Online (Sandbox Code Playgroud)
我玩弄了一些集合函数(例如MIN,MAX等),PARTITION和CTE,但我似乎无法找到正确的解决方案.我希望SQL大师可以帮助我,或者至少指出我正确的方向.是否有一种相当直接的方式来查询(最好没有光标?)
我正在将Windows窗体应用程序转换为WPF应用程序.有没有办法获取诸如启动路径,用户应用程序数据路径,通用应用程序数据路径等,而无需引用System.Windows.Forms?
以前,我用过System.Windows.Forms.Application.StartupPath,但System.Windows.Application.Current对象不包含相同的信息.
我想使用WPF RichTextBox,它允许用户编辑和格式化文本.这种格式化的文本最终将与我们的一些其他自定义XML数据一起进入Word文档.
我发现了几个从WordML到FlowDocument的例子,但没有将RichTextBox FlowDocument转换为WordML的例子.
而不是重新发明轮子,是否有一个开源XSLT文件,我可以用来将WPF FlowDocument转换为WordML?
我不是在寻找100%的解决方案(例如桌子,数字,图纸等).此时,我只对保留字体格式,段落,项目符号列表等感兴趣.
编辑:
如果可能的话,我需要避免使用Word Interop或昂贵的第三方工具(例如Apose).我正在寻找一种优雅的方式将一些基本的FlowDocument XML格式的内容翻译成OpenXML,最好是通过XSLT.由于我对嵌入式图片等项目不感兴趣,我认为这可能是可行的,因为我发现了另一个方向的例子(即OpenXML/WordML到XAML Flowdocument)
来自C#世界,我正在努力确保我不会在我被分配到的C++项目中引入内存泄漏和错误.我正在编写使用结构来解析来自数据缓冲区的信息的代码.由于缓冲区中出现的数据结构数量可能会在运行时发生变化,因此stl向量用于存储已处理的数据.我在现有软件中遇到了以下代码块,并且很难理解它的工作原理:
MyVectorOfObjects.clear();
for (unsigned __int8 i = 0; i < NumberOfObjects; i++)
{
MyParserObject parserObject; // Declaring without 'new'?
parserObject.Decode(buffer, offset, size); // A method on the struct.
MyVectorOfObjects.push_back(parserObject); // Does this keep parserObject in scope?
}
Run Code Online (Sandbox Code Playgroud)
我的问题具体是:
根据这个问题,parserObject由于new没有使用关键字,每次迭代都不会超出范围?显然这段代码一直在运行.
在这种情况下,是否将对象置于vector保持parserObject范围内?
根据这个问题,解析了parserObject.如果是这种情况,那么性能影响(例如内存消耗,内存分配等)是什么?此外,复制的parserObjects是否假设与向量相同的范围?
谢谢你的帮助.
有没有办法为SQL Server创建一个CLR用户定义函数,它返回多个值而不使用表值函数语法?例如,假设我要执行坐标转换,例如:
[SqlFunction()]
public void ConvertCoordinates(SqlDouble x, SqlDouble y, SqlDouble z, out SqlDouble r, out SqlDouble t, out SqlDouble p)
{
r = new SqlDouble(Math.Sqrt((x.Value*x.Value)+(y.Value*y.Value)+(z.Value*z.Value)));
t = new SqlDouble(Math.Acos(r.Value / z.Value));
p = new SqlDouble(Math.Atan(y.Value / x.Value));
}
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?在这种情况下,表值函数似乎不合适,因为计算永远不会产生多个输出行.使用标量值函数语法,我将不得不编写三个不同的函数来执行计算并分别调用它们.鉴于我的实际用例,这是非常不切实际的.
我意识到上述逻辑可以使用纯T-SQL完成; 我的实际用例更复杂,但仍然只会导致单行具有多个相互依赖的输出值.
那么,底线,是否可行?我不认为是,但人们可以希望.如果它是偶然的可行,那么T-SQL看起来会是什么样的呢?
让我先说一下,套接字编程对我来说是相当新的.此外,我问的代码已经工作了几年,我讨论的问题才开始,当我们从支持Windows XP改为Windows 7.
我正在开发一个发送和接收网络数据包的C#应用程序.它是一种网络嗅探器类型的应用程序,因此数据完整性非常重要.自从我们从Windows XP迁移到Windows 7后,当我们使用UDP广播(255.255.255.255)数据包时,我们会收到两次数据包.(即我发送610个数据包,我收到1220个数据包).
我已经使用WireShark验证了数据包只被接收一次. 此外,我们有一些旧的C++套接字代码已被.NET代码取代.较旧的C++代码不表示重复.这两个都表示发送了610个包,收到了610个包.
代码是高度线程化的,并在各种类之间拆分,但是将一些部分放在一起,接收代码如下所示:
public class RawSocket : Socket
{
public RawSocket( IPAddress address, int receiveBufferSize, bool receiveAll )
: base( AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP )
{
Bind( new IPEndPoint( address, 0 ) );
ReceiveBufferSize = receiveBufferSize;
ReceiveTimeout = 500; // half-a-second
if ( receiveAll ) {
byte[] incoming = BitConverter.GetBytes( 1 );
byte[] outgoing = BitConverter.GetBytes( 1 );
IOControl( IOControlCode.ReceiveAll, incoming, outgoing );
}
}
}
_device = new RawSocket( /* …Run Code Online (Sandbox Code Playgroud) 我想在一个视图中创建一个带有地图的Android MapActivity,它可以翻转然后在另一个视图中配置,然后再次翻转回地图.我提出的解决方案是有效的,但我想知道是否有更好的方法来做到这一点.
我从Android ApiDemos复制了Rotate3DAnimation类,并在MapActivity类的顶部声明了这些:
private MapView mMapView;
private ViewFlipper mFlipper;
private Rotate3dAnimation mInMapAnimation;
private Rotate3dAnimation mInStgAnimation;
private Rotate3dAnimation mOutMapAnimation;
private Rotate3dAnimation mOutStgAnimation;
Run Code Online (Sandbox Code Playgroud)
接下来,在我的MapActivity的onCreate方法中,我做了这个:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapoverviewlayout);
// Initialize the map.
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
// Obtain the view flipper.
mFlipper = (ViewFlipper)findViewById(R.id.mapviewflipper);
// Initialize the settings view and handle the setting clicks.
Button stgMapDone = (Button)findViewById(R.id.MapViewOptionsDone);
stgMapDone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
UnitOverviewMapActivity.this.mFlipper.showNext();
}
});
}
Run Code Online (Sandbox Code Playgroud)
最后,我使用菜单按钮选择适当的翻转动画.我这样做是因为如果地图翻转一个方向以显示设置视图,我希望它反向翻转以隐藏设置视图.所以在我的onPrepareOptionsMenu(因为那是我的按钮所在的位置)我这样做了:
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) 我正在研究一个现有的数据解析程序,它将结构覆盖到缓冲区上以提取值.最近,缓冲区中添加了一种新的数据格式,需要一个新的结构.我将函数抽象为一个公共基类,并定义了一个像这样的新结构:
struct Header
{
Header () { }
public:
virtual unsigned __int8 getCommonField1() const = 0;
}
struct HeaderTypeA : public Header
{
unsigned __int8 Field1;
public:
unsigned __int8 getCommonField1() const { return Field1; }
}
struct HeaderTypeB : public Header
{
unsigned __int8 Field0;
unsigned __int8 Field1;
public:
unsigned __int8 getCommonField1() const { return Field1; }
}
Run Code Online (Sandbox Code Playgroud)
执行处理的现有代码评估数据(这是有效的)并返回指向调用函数的指针......如下所示:
Header* parse()
{
Header* parsedHeader = 0;
if (typeADetected)
{
parsedHeader = (HeaderTypeA *) &buffer[offset];
// Other logic here...
}
else …Run Code Online (Sandbox Code Playgroud)