小编Tee*_*jay的帖子

每次Visual Studio打开时,VMDebugger加载项都会崩溃

每次打开VS 2012的实例时,我都会遇到以下错误,大约一周
(所以这不是由于昨天的更新4).

错误

即使我单击,重新打开Visual Studio时也会再次显示错误.

无论如何,VMWare调试器似乎正确加载
(实际上我不使用它,它随VMWare工作站一起提供).

我无法隔离导致错误开始出现的单个操作.

有人遇到同样的错误吗?

vmware visual-studio-2012

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

SQL vs LINQ性能

我们目前有一个自制的实体框架,它依赖于DB独立的ORM.

我必须构建一个软件,在DB中为大约150个Excel模板批量加载元数据(包含有关单元格位置,单元格类型,格式等信息).

我可以操作

  • 通过SQL批处理(更快但交互性更低)

  • 通过在内存中构建对象,使用LINQ查询处理它们以进行各种完整性检查,然后对数据库提交修改

我知道SQL绝对更快,但我知道...... 它的速度有多快?

详细地说,SQL查询比LINQ查询更快(假设所有需要的数据已经由ORM加载到内存中)

sql linq performance

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

没有注册非OData HTTP路由

我按照教程创建了一个WebAPI REST服务.

之后,我可以通过指向加载所有联系人的列表http://baseaddress/api/Contacts.

然后我Register在WebApiConfig.cs 的方法中添加了以下代码,以便启用OData端点:

config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Contact>("Contacts");
config.MapODataServiceRoute(
    routeName: "OData",
    routePrefix: "odata",
    model: builder.GetEdmModel());
Run Code Online (Sandbox Code Playgroud)

并且还在方法[EnableQuery]上添加了参数Contact.GetContacts().这样,我就可以查询这样的特定联系人:

http://baseaddress/odata/Contacts?$filter=startswith(Name,'A')
Run Code Online (Sandbox Code Playgroud)

它就像魅力一样.

不幸的是,当我放入时[EnableQuery],WebAPI端点停止工作,显示以下错误:

No non-OData HTTP route registered.

in System.Web.OData.Extensions.HttpConfigurationExtensions.GetNonODataRootContainer(HttpConfiguration configuration)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.GetRootContainer(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestScope(HttpRequestMessage request, String routeName)
in System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateRequestContainer(HttpRequestMessage request, String routeName)
...
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

c# odata asp.net-web-api

18
推荐指数
3
解决办法
8441
查看次数

使用"Is"运算符选择Case

在VB.NET中,我必须比较一个select case语句中的一些对象.

由于默认情况下select case使用=operator而没有为对象定义,因此抛出了编译错误.

我目前使用此解决方法:

Select Case True
    Case sender Is StyleBoldButton

    Case sender Is StyleUnderButton

    Case sender Is StyleItalicButton

End Select
Run Code Online (Sandbox Code Playgroud)

这实际上有效.

是否有更漂亮的东西可以看到,更容易理解?

vb.net select case

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

无法密封,因为它不是覆盖

我有以下课程:

namespace Warnings
{
    public abstract class BaseWarningIntField : IWarningInnerDataField
    {
        public string PropName;

        public string HeaderCaption;

        public sealed WarningInnerDataType DataType
        {
            get { return WarningInnerDataType.Integer; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望最后一个属性DataType不可覆盖,因为它是Integer类型的warning-detail字段的基类,所以它需要始终返回正确的类型WarningInnerDataType.Integer.

无论如何,编译器给我以下错误:

'Warnings.BaseWarningIntField.DataType'无法密封,因为它不是覆盖

但是,据我所知,override这与我想要实现的完全相反.

c# overriding sealed

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

PgAdmin III,打开服务器状态给出"编码UTF8的无效字节序列"

我在同步复制中有两个Postgres 9.3服务器.

我需要重启奴隶才能加载新archive_cleanup_commandrecovery.conf.

服务器正确重启,现在与主服务器完全同步.

但是当我在PgAdmin III(可执行文件位于主服务器上)中打开从属服务器的"服务器状态"面板时,我收到一些错误,如下所示:

invalid byte sequence for encoding “UTF8” 加一些十六进制代码

在此输入图像描述

这可能是因为我把波浪线~archive_cleanup_command,但它并没有工作,然后我删除,并命令工作正常.

也许这~已写在某处,它不是一个有效的char ...但我也删除了日志......

从服务器的日志有很多行,如下所示:

2015-02-13 11:11:32 CET ERROR:  invalid byte sequence for encoding “UTF8”: 0xe8 0x20 0x73
2015-02-13 11:11:32 CET STATEMENT:  SELECT pg_file_read('pg_log/postgresql-2015-02-13_111038.log', 0, 50000)
Run Code Online (Sandbox Code Playgroud)

请注意,这postgresql-2015-02-13_111038.log是最后一个日志,我从中得到这些行.

postgresql utf-8 pgadmin

10
推荐指数
1
解决办法
3197
查看次数

N功能可以导致现有查询出现问题吗?

我们使用Oracle 10gOracle 11g.

我们还有一个层来自动编写查询,来自.net编写的伪SQL代码(类似于SqlAlchemy for Python).

我们的层当前用单引号包装任何字符串',如果包含非ANSI字符,它会自动组成UNISTR带有unicode字节的特殊字符(如\00E0).

现在我们创建了一个使用以下构造进行多次插入的方法:
INSERT INTO ... (...) SELECT ... FROM DUAL UNION ALL SELECT ... FROM DUAL ...

此算法可以组成查询,其中有时会传递相同的字符串字段'my simple string',有时会将其包装为UNISTR('my string with special chars like \00E0').

所述条件导致a ORA-12704: character set mismatch.

一种解决方案是使用该INSERT ALL构造,但与现在使用的构造相比,它非常慢.

另一个解决方案是指示我们的图层放在N任何字符串的前面(已经包裹的字符串除外UNISTR).这很简单.

我只是想知道这是否会对现有查询造成任何副作用.

注意:DB上的所有字段都是NCHARNVARCHAR2.


Oracle参考:http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch7progrunicode.htm

oracle unicode bulkinsert

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

SELECT需要100ms; CREATE表作为select - 或 - INSERT into select需要15分钟

我有一个非常简单的SELECT *查询与一个WHERE NOT EXISTS子句.

SELECT *
FROM "BMAN_TP3"."TT_SPLDR_55E63A28_59358" SELECT_TABLE
WHERE NOT EXISTS (SELECT * FROM "BMAN_TP3"."USER_DEF_ATTRIBUTES" EXISTS_TABLE
                  WHERE "SELECT_TABLE"."UDA_NAME" = "EXISTS_TABLE"."UDA_NAME")
Run Code Online (Sandbox Code Playgroud)

此查询执行大约100毫秒并获取<2000条记录.

如果此查询嵌套在一个CREATE TABLE AS或中,INSERT INTO它在15分钟内运行.

CREATE TABLE BMAN_TP3.TT_UDA_TEST TABLESPACE BMAN_TP3_U AS (
  SELECT *
  FROM "BMAN_TP3"."TT_SPLDR_55E63A28_59358" SELECT_TABLE
  WHERE NOT EXISTS (SELECT * FROM "BMAN_TP3"."USER_DEF_ATTRIBUTES" EXISTS_TABLE
                    WHERE "SELECT_TABLE"."UDA_NAME" = "EXISTS_TABLE"."UDA_NAME")
)
Run Code Online (Sandbox Code Playgroud)

我有一个UNIQUE INDEXon (交替键)和表的UDA_NAME字段.USER_DEF_ATTRIBUTESTT_SPLDR_55E63A28_59358

如果我删除WHERE NOT EXISTS它需要半秒钟.


编辑:

如果我使用

LEFT OUTER JOIN …
Run Code Online (Sandbox Code Playgroud)

oracle

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

Oracle CAST 到 NVARCHAR2 的奇怪行为

我有以下查询:

\n\n
SELECT (CAST("META_SECT_ORDER" AS NVARCHAR2(3)) || \'#\' || "CODE") AS "SECTION"\nFROM "BMAN_TP2"."LOADER_TEMPLATE_SECTIONS"\n
Run Code Online (Sandbox Code Playgroud)\n\n

META_SECT_ORDER显然是整数,而CODE是字符串。

\n\n

它输出 700 行,如下所示:

\n\n
SECTION\n-------\n 0#F01\n 0#I05\n 1#I05\n 2#I05\n
Run Code Online (Sandbox Code Playgroud)\n\n

ETC...

\n\n

我知道这CAST不是必需的,但查询是由底层查询构建器组成的,该构建器也为 MsSQL Server 输出(其中CAST需要时)和 Postgres 输出。

\n\n

奇怪的事实是,如果我提高NVARCHAR2我会得到不同的结果。例如:

\n\n
    \n
  • 当值 <= 80 时,我得到正确的结果(见上文)

  • \n
  • 值为 81,我得到 700 行\xec\xa5\xb4\xe1\x9e\x8b\xe9\x86\xb4\xe0\xb0\x80\xed\x89\xb6\xe0\xb5\x90\xe5\x87\xa8\xec\x93\xa5\xe6\x98\x81\xe8\x8f\x84\xe0\xa2\x8b\xe4\x96\xbc\xe8\xad\x95\xe8\xb2\x89\xe1\x82\x8b\xe4\x96\xbc\xe8\x8e\x80\xe9\x90\x8b

  • \n
  • 值为 82,我得到 700 行\xe0\xa8\x96\xe0\xac\x86

  • \n
  • 对于奇数值,在 [83-127] 中,我得到 700 个空行

  • \n
  • 对于偶数值,在 [84-128] 中,我得到 700 行\xda\xa2

  • \n
  • 值 >= 129,我得到 …

oracle oracle10g

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

通过 AVMetaDataItem 写入 ID3 标签

我正在使用以下命令将 ID3 标签写入文件AVMetaDataItem

var soundFileMetadata = [AVMetadataItem]()

soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyArtist, "MyArtist")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeySongName, "MySong")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyAlbum, "MyAlbum")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyUserGenre, "MyGenre")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyComposer, "MyComposer")!)
Run Code Online (Sandbox Code Playgroud)

这是createMetadata方便的方法:

func createMetadata(tagKey: String, _ tagValue: AnyObject?,
                    keySpace:String = AVMetadataKeySpaceiTunes) -> AVMutableMetadataItem? {
    if let tagValue = tagValue {       
        let tag = AVMutableMetadataItem()
        tag.keySpace = keySpace
        tag.key = tagKey
        tag.value = (tagValue as? String) ?? (tagValue as? Int)
        return tag
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试也写年份标签,但没有成功:

let comps = NSDateComponents()
comps.year = 2010;

let yearTag = AVMutableMetadataItem()
yearTag.keySpace = AVMetadataKeySpaceID3
yearTag.key …
Run Code Online (Sandbox Code Playgroud)

avaudiorecorder avassetexportsession avmetadataitem swift

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