问题列表 - 第6618页

可重新运行的SQL Server脚本

确保SQL可以重复运行而不会在后续运行中收到错误的最佳实践是什么?

例如

  • 在创建表之前检查表是否已存在
  • 在创建或重命名之前检查列是否已存在
  • 错误时回滚的事务
  • 如果在重新创建表之前删除存在的表,则首先删除它们的依赖项,并且不要忘记在之后重新创建它们
  • 如果您的SQL风格支持它,请使用CREATE OR ALTER PROCEDURE而不是CREATE PROCEDURE或ALTER PROCEDURE
  • 维护内部版本控制方案,因此相同的SQL首先不会运行两次.通过这种方式,您可以通过查看版本号来了解自己所处的位置.
  • 将现有数据导出到INSERT语句,并从头开始完全重新创建整个DB.

  • 在创建它们之前删除表(不是最安全的事情,但是如果你知道你在做什么的话就会工作)

编辑:我正在寻找这样的东西:

IF EXISTS ( SELECT  *
            FROM    sys.objects
            WHERE   object_id = OBJECT_ID(N'[dbo].[foo]')
                    AND OBJECTPROPERTY(object_id, N'IsUserTable') = 1 ) 
DROP TABLE foo
Run Code Online (Sandbox Code Playgroud)

其他人是否使用这样或更好的陈述?

编辑:我喜欢Jhonny的建议:

IF OBJECT_ID('table_name') IS NOT NULL DROP TABLE table_name
Run Code Online (Sandbox Code Playgroud)

我这样做是为了添加列:

IF NOT EXISTS ( SELECT  *
                FROM    SYSCOLUMNS sc
                WHERE   EXISTS ( SELECT id
                                 FROM   [dbo].[sysobjects]
                                 WHERE  NAME LIKE 'TableName'
                                        AND sc.id = id )
                        AND sc.name = 'ColumnName' ) 
    ALTER TABLE [dbo].[TableName] …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

将XML数据绑定到WPF树视图控件

我花了很多时间试图弄清楚如何将我的XML文件中的数据绑定到TreeView控件,但我不知道从哪里开始.我甚至尝试过将Xml数据双向绑定到代码项目上的WPF TreeView和Josh Smith的代码示例,但仍然无法理解如何开始!

我在文件"C:\ SPDependencies.xml"中有XML(如果需要我可以更改格式)!!!:

  <node type="SPDependencies" Name="SPDependencies">
        <node type="StoredProc" Name="SP1">
                <node type="OperationType" Name="Type1">
                        <node type="TableName" Name="Table1"/>
                        <node type="TableName" Name="Table2"/>
                </node>
                <node type="OperationType" Name="Type2">
                         <node type="TableName" Name="Table1"/>
                        <node type="TableName" Name="Table2"/>
                </node>
                 .....
        </node>
        <node type="StoredProc" Name="SP2">
              <node type="OperationType" Name="Type1">
              ...
              ...
        </node>
</node>
Run Code Online (Sandbox Code Playgroud)

我需要以下列格式在Treeview控件中显示它:

<SP1>
   <Type1>
      <Table1>
      <Table2>
      <Table3>
   <Type2>
      <Table1>
      <Table2>
      <Table3>
<SP2>
    <Type1>
........
Run Code Online (Sandbox Code Playgroud)

谢谢,阿比.

wpf treeview

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

我的应用程序发送的电子邮件中未嵌入图像

我正在尝试使用Indy通过delphi应用程序发送包含嵌入图像的电子邮件,但不知何故它无法正常工作.

我将我发送的电子邮件的内容与从Gmail发送的电子邮件的内容进行了比较,所有内容都很好,但我可能会遗漏一些细节.

Gmail会将我的电子邮件的附件图像显示为普通附件,但它已正确设置为内联.

编辑

使用TIdMessageBuilderHtml解决了它在第一次尝试时完美的工作.

delphi email gmail indy

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

关于Unladen Swallow的观点?

您对Google的Unladen Swallow有何看法和期望?从他们的项目计划:

我们希望让Python更快,但我们也想让大型的,成熟的应用程序轻松切换到Unladen Swallow.

  1. 生成Python的版本至少比CPython快5倍.
  2. Python应用程序性能应该稳定.
  3. 保持与CPython应用程序的源级兼容性.
  4. 保持与CPython扩展模块的源级兼容性.
  5. 我们不想永远维护Python实现; 我们将工作视为一个分支,而不是一个分支.

甚至更甜:

此外,我们打算删除GIL并修复Python中的多线程状态.我们相信通过实施更复杂的GC可以实现这一点

它看起来好得令人难以置信,就像最好的PyPy和Stackless一样.

更多信息:

更新:正如DNS指出的那样,有一个相关的问题:什么是LLVM以及如何用LLVM替换Python VM的速度提高5倍?

python llvm unladen-swallow

33
推荐指数
2
解决办法
2831
查看次数

在Tomcat上的webapp中使用Batik时"找不到SAX2驱动程序类org.apache.crimson.parser.XMLReaderImpl"

这可能与类路径问题有关,但我现在还不确定,因为我在某些机器上没有出现此错误.

堆栈顶部的错误是SAX2 driver class org.apache.crimson.parser.XMLReaderImpl not found.为什么我只在某些环境中获得此错误,而不是其他环境?我该如何进一步调查和/或解决这个问题?

环境:

  • Mac或PC上的Jetty ==好的
  • Mac上的Tomcat 5或6 ==确定
  • Win XP上的Tomcat 5或6 ==错误
  • CentOS上的Tomcat 6 == ERROR

POM中的版本:

  • 蜡染:蜡染:罐子:1.5:编译
  • net.sf.saxon:撒克逊:罐子:8.7:编译
  • 蜡染:蜡染代码转换器中:jar:1.6-1:编译
    • 蜡染:蜡染桥:罐子:1.6-1:编译
    • 蜡染:蜡染GVT:罐子:1.6-1:编译
    • 蜡染:蜡染AWT,UTIL:罐子:1.6-1:编译
    • 蜡染:蜡染UTIL:罐子:1.6-1:编译
    • 蜡染:蜡染 - 桂 - UTIL:罐子:1.6-1:编译
    • 蜡染:蜡染-EXT:罐子:1.6-1:编译
    • XML的API:xmlParserAPIs:罐子:2.0.2:编译
    • 蜡染:蜡染脚本中:jar:1.6-1:编译
    • 蜡染:蜡染SVG-DOM中:jar:1.6-1:编译
    • 蜡染:蜡染DOM中:jar:1.6-1:编译
    • 蜡染:蜡染CSS:罐子:1.6-1:编译
    • 蜡染:蜡染XML:罐子:1.6-1:编译
    • 蜡染:蜡染的解析器:罐子:1.6-1:编译
    • FOP:FOP:罐子:0.20.5:编译
    • 蜡染:蜡染-1.5-FOP:罐:0.20-5:编译
    • XML的API:XML的API中:jar:1.0.b2:编译
    • xalan的:xalan的:坛子:2.4.1:编译
    • Xerces的:xercesImpl:罐子:2.2.1:编译
    • 阿瓦隆框架:阿瓦隆的框架中:jar:4.0:编译

java svg tomcat classpath batik

3
推荐指数
2
解决办法
8199
查看次数

估计积分时间,真的是3倍吗?

我在一个神秘的月份读到,整合需要3倍于开发单个组件所花费的时间.

你们经历了什么?

integration estimation

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

为什么这段代码执行速度比预期的要快?

我有这个代码:

    public void replay() {
        long previous = DateTime.Now.Ticks;
        for (int i = 0; i < 1000; i++) {
            Thread.Sleep(300);
            long cur = DateTime.Now.Ticks;
            Console.WriteLine(cur - previous);
            previous = cur;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这被调用为一个单独的线程,如下所示:

        MethodInvoker replayer = new MethodInvoker(replay);
        replayer.BeginInvoke(null, null);
Run Code Online (Sandbox Code Playgroud)

但是,如果我观察输出,它的行为很奇怪.它i成对输出.例如,它将等待一个完整的等待,然后输出i,然后快速输出下一个i,然后再次等待.为什么这样做,我该如何纠正呢?

它输出这个:

3125040
2968788
2968788
2968788
3125040
2968788
2968788
2968788
3125040
2968788
2968788
2968788
3125040
Run Code Online (Sandbox Code Playgroud)

如果我将睡眠时间增加到一秒以上,则不会发生这种情况.

.net c# multithreading execution

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

为什么WPF中没有可视继承?

在Windows窗体中,有时会有一个窗口从另一个窗口继承.但在WPF中,这是不允许的.为什么WPF窗口没有可视继承?

wpf inheritance

7
推荐指数
2
解决办法
3520
查看次数

Java套接字的PrintWriter线程是否安全?

所以,我有两个主题.

线程1管理客户端连接.(只有一个客户端和一个服务器)
我称之为我的服务器线程.

线程二管理向客户端发送消息.我称之为消息处理器线程.

线程1负责,除其他外,定期向客户端发送心跳.

在编程时我假设套接字不是线程安全的,但缓冲区是,并且只要我使用单独的缓冲区用于服务器和处理器线程我就没问题了.

我还假设"PrintWriter"类似于Java中的套接字缓冲区.

在这些假设下,我写了这个函数来发送心跳:

public void sendHeartBeat(){
        logger.info("Sending a hearbeat!");
        PrintWriter printWriter=null;
        try {
            printWriter = new PrintWriter(clientSocket.getOutputStream());
        } catch (IOException e) {
            logger.info(e.toString());
        }
        if(printWriter!=null){
            printWriter.print("HEARTBEAT#");
            printWriter.flush();
        }
    }
Run Code Online (Sandbox Code Playgroud)

另一个线程,"处理器"做了类似的事情:

printWriter=new PrintWriter(theServer.getClientSocket().getOutputStream());
Run Code Online (Sandbox Code Playgroud)

通过这种方式,每次我希望发送心跳时,我都会创建一个新的"缓冲区",而且我的消息永远不会被覆盖.

不幸的是,情况似乎并非如此.我收到一条消息来自管道:dsgdsbHEARTBEAT #sdg

这会导致稍后的核心转储.

这是我的问题:

1)套接字显然不是线程安全的,但是我从它们获得的PrintWriters是否安全?或者它只是返回相同的PrintWriter?

2)什么类似于Java中的套接字缓冲区?我该如何看待这个问题?

3)如何使这些线程不写入套接字上的相同缓冲区?

java sockets multithreading

9
推荐指数
2
解决办法
7519
查看次数

SVN:忽略已提交的文件

我有一个使用subversion进行版本控制的设置文件.每个人都有自己的这个文件的副本,我需要这个不被提交.但是,就像我说的那样,版本控制下已有一个副本.我的问题是:如何从版本控制中删除此文件而不删除每个人的文件,然后将其添加到忽略列表中,以便它不会被提交?我正在使用linux命令行svn.

linux svn version-control

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