DevForce 在查询中用引号括起数据库对象

DevForce enclosing database objects on queries with quotes

我注意到 DevForce 执行的数据库查询用引号将查询中的数据库对象括起来(例如 select * 来自 "SCHEMA_NAME"."TABLE_NAME")。我就想问问有没有办法让DevForce不这样做

我目前正在使用 DevForce Classic 3.7.5.1。

谢谢。

DevForce Classic 使用 "provider helper" 来确定 SQL 语句的格式。使用的默认助手由您的连接字符串决定,但通常是 OleDbProviderHelper 的一个实例。要更改默认逻辑,您可以根据需要子class OleDbProviderHelper 或其他助手。

在这种情况下,要更改标识符的格式,您可以使用类似于以下内容的内容:

public class CustomProviderHelper : IdeaBlade.Rdb.OleDbProviderHelper {

  public override string FormatIdentifier(string identifier) {
    return identifier;
  }
}

此方法的默认逻辑用 base.IdentifierPrefix 和 base.IdentifierSuffix 值包装标识符,您也可以覆盖这些值。在上面的示例中,我只删除了所有前缀和后缀的使用,但您可以做任何最适合您的事情。

如果您将 class 放在指定为 RdbKey 的探测程序集之一的服务器上的程序集中,DevForce 将找到您的自定义实现。