小编Raf*_*olo的帖子

如何查看客户端的NLS_LANG?

我正在使用Windows操作系统,我知道这个设置存储在注册表中.问题是注册表路径从版本变为版本,虽然浏览那一堆注册表键肯定不是一个好主意.

我可以得到NLS_LANG服务器的SELECT USERENV ('language') FROM DUAL.

我想将它与客户端设置进行比较,并在它们不匹配时显示警告,就像Pl/Sql Developer一样.

oracle character-encoding nls-lang

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

推秘密变更集

这可能看起来很矛盾,我知道秘密更改集应该是私有的,但如果我想备份这些秘密更改集怎么办?

我平行地与一些分支机构合作,有时候我想推一个分支机构,而不是其他分支机构.为了达到这个目的,我在不同的克隆工作,但我讨厌这个.

所以现在mercurial有阶段,我可以建立秘密分支,并在同一个存储库中拥有所有内容.问题是在秘密分支的开始和它的发布之间,我想要备份那些秘密变更集(我在另一台机器上有一个克隆,只是为了保存我的备份以防万一我的本地仓库或我的机器发生了什么).

有没有办法做到这一点或我的工作流程是完全错误的?

mercurial mercurial-phases

12
推荐指数
2
解决办法
2671
查看次数

TortoiseHg图形颜色的含义

这些线和变换点颜色的逻辑是什么?TortoiseHg会自动为每个命名分支指定颜色吗?在同一个命名分支中,线条与变更集点的颜色不同(如紫色点与蓝线),为什么?

mercurial branch colors tortoisehg

9
推荐指数
1
解决办法
4243
查看次数

应该在Delphi中为实例/类字段添加前缀吗?

正如鲍勃叔叔的清洁代码所说,我们不应该为班级成员加上前缀.虽然我完全同意这些论点,特别是谈论德尔福,但我们如何将私有领域与公共财产区分开来?

在Java中,这不是问题,因为没有属性.

Microsoft还在其编码指南中以粗体字母推荐这种做法.它们通过对私有字段使用小写而对公共属性使用大写来区分.

除此之外,我们没有其他IDE(包括免费和开源IDE)的字段成员的语法高亮

那么,我们应该在所有字段前加上吗?或者只是那些与公共财产相撞的人?

编辑:

我知道德尔福的编码标准是在字段前加上F,但这就是清洁代码中的一个不好的做法.这是否意味着Delphi代码不能像其他语言编写的代码一样"干净"?

delphi coding-style

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

通过Delphi 2010中的索引属性进行迭代

在Delphi 2010中有没有办法迭代任何类型的索引属性(例如,页面的TPageControl)?

delphi indexed properties rtti

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

Spring for Delphi中GlobalContainer和ServiceLocator有什么区别?

他们看起来很相似.我可以在GlobalContainer中注册一些东西:

GlobalContainer.RegisterType<TMyImplementation>.Implements<IMyInterface>;
Run Code Online (Sandbox Code Playgroud)

并通过GlobalContainer或获取实例ServiceLocator,它们都工作:

MyInstance := GlobalContainer.Resolve<IMyInterface>;
MyInstance := ServiceLocator.GetService<IMyInterface>;
Run Code Online (Sandbox Code Playgroud)

delphi spring4d

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

是否违反了接口属性访问器的封装公开?

当我们在Delphi中设计一个类时,通常我们有私有字段(成员),私有setter和getter方法以及公共属性.从课外,该数据的访问仅由公共财产进行; 该类的用户甚至不知道存在getter方法.

因此getter和setter方法封装了实例成员,属性封装了getter和setter方法.

但是,在定义接口时,我们将公开这些方法:

ICounter = interface
  // I wouldn't want to specify these 2 methods in the interface, but I'm forced to
  function GetCount: Integer;
  procedure SetCount(Value: Integer);

  property Count: Integer read GetCount write SetCount;
end;
Run Code Online (Sandbox Code Playgroud)

实现具体类:

TCounter = class(TInterfacedObject, ICounter)
private
  function GetCount: Integer;
  procedure SetCount(Value: Integer);
public
  property Count: Integer read GetCount write SetCount;
end
Run Code Online (Sandbox Code Playgroud)

使用它:

var
  Counter: ICounter;
begin
  Counter := TCounter.Create;
  Counter.Count := 0; // Ok, that's my public property

  // The access should me …
Run Code Online (Sandbox Code Playgroud)

delphi oop properties interface

4
推荐指数
1
解决办法
1169
查看次数

如果根据Firebird/Interbase中的检查约束它们是否有效,我如何在表之间复制记录?

我想将临时表中的一堆记录复制到目标表.问题是某些记录可能违反了目标表中的检查约束,因此我想插入可能的所有内容,并在其他地方为无效记录生成错误日志.

如果我执行:

INSERT INTO target_table
  SELECT ... FROM temp_table
Run Code Online (Sandbox Code Playgroud)

如果任何记录违反任何约束,则不会插入任何内容.我可以制作一个循环并逐个手动插入,但我认为性能会更低.

database firebird interbase check-constraints

4
推荐指数
1
解决办法
2196
查看次数

Mercurial模板:标签和书签的分隔符

只有当我有任何标签或书签时,我才能将空格字符作为分隔符吗?

例:

hg log --template "{rev} {author} {tags} {bookmarks} {desc|firstline}\n"

Output:
3: Author1 TIP BKMRK_NAME Another commit
2: Author1   Third commit
1: Author1 TAG1  Second commit
0: Author1   Initial commit
Run Code Online (Sandbox Code Playgroud)

没有标签或书签的变更集会打印空格字符.我想压制那些多余的空间:

3: Author1 TAG_NAME BKMRK_NAME Another commit
2: Author1 Third commit
1: Author1 TAG1 Second commit
0: Author1 Initial commit
Run Code Online (Sandbox Code Playgroud)

mercurial templates

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