小编bpo*_*ter的帖子

如何检测和绑定SQL表中行值之间的更改?

我有一个表记录随时间变化的值,类似于以下内容:

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大师可以帮助我,或者至少指出我正确的方向.是否有一种相当直接的方式来查询(最好没有光标?)

t-sql sql-server sql-server-2008

18
推荐指数
2
解决办法
4506
查看次数

用于获取启动路径,应用程序数据路径等的WPF等效于"System.Windows.Forms.Application.X"是什么?

我正在将Windows窗体应用程序转换为WPF应用程序.有没有办法获取诸如启动路径,用户应用程序数据路径,通用应用程序数据路径等,而无需引用System.Windows.Forms?

以前,我用过System.Windows.Forms.Application.StartupPath,但System.Windows.Application.Current对象不包含相同的信息.

c# wpf

17
推荐指数
2
解决办法
9149
查看次数

是否有一个开源XSLT将WPF FlowDocument转换为WordML?

我想使用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# xslt wpf openxml wordml

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

在STL向量中管理范围和对象寿命

来自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)

我的问题具体是:

  1. 根据这个问题,parserObject由于new没有使用关键字,每次迭代都不会超出范围?显然这段代码一直在运行.

  2. 在这种情况下,是否将对象置于vector保持parserObject范围内?

  3. 根据这个问题,解析了parserObject.如果是这种情况,那么性能影响(例如内存消耗,内存分配等)是什么?此外,复制的parserObjects是否假设与向量相同的范围?

谢谢你的帮助.

c++ vector

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

带有Out参数的SQL Server CLR UDF - 可能吗?

有没有办法为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看起来会是什么样的呢?

c# sql-server clr sqlclr user-defined-functions

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

为什么在使用套接字在Windows7上接收UDP广播而不是XP时,我看到重复的数据包?

让我先说一下,套接字编程对我来说是相当新的.此外,我问的代码已经工作了几年,我讨论的问题才开始,当我们从支持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)

.net c# sockets windows-xp windows-7

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

在Android ViewFlipper中更好地实现Rotate3dAnimation

我想在一个视图中创建一个带有地图的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)

java android

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

C++访问冲突

我正在研究一个现有的数据解析程序,它将结构覆盖到缓冲区上以提取值.最近,缓冲区中添加了一种新的数据格式,需要一个新的结构.我将函数抽象为一个公共基类,并定义了一个像这样的新结构:

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)

c++ visual-c++

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