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 将找到您的自定义实现。
我注意到 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 将找到您的自定义实现。