名为 CacheParameter 的系统间缓存

Intersystems Cache Named CacheParameter

我不想在参数的 SQL 语句中使用 ? 标记,而是使用命名字段,因为它比 WHERE something = ? AND somethingelse < ? and whatever LIKE ?

更具可读性

在某些能力下是否可能出现以下情况?

SELECT * FROM NAMESPACE.Table WHERE Name = @name AND Something = @anothervar

官方文档根本没有提到它,并向我展示了以下内容

string SQLtext = 
      "SELECT ID, Name, DOB, SSN "
    + "FROM Sample.Person "
    + "WHERE Name %STARTSWITH ?"
    + "ORDER BY Name";
  CacheCommand Command = new CacheCommand(SQLtext, CacheConnect);

参数值设置为获取Name以A开头的所有行,参数传递给CacheCommand对象:

   CacheParameter Name_param = 
    new CacheParameter("Name_col", CacheDbType.NVarChar);
  Name_param.Value = "A";
  Command.Parameters.Add(Name_param);

Caché 中的命名 SQL 参数仅以两种方式可用。

  • Embedded sql 与 &sql()。在 .Net 上工作时不能使用这种方式,因为它只是 CacheObjectScript。
  • Class Query 你不能同时使用它,因为这样的 SQL 查询应该在 Class 本身上定义,并且当你调用它时,你应该传递所有参数, 没有名字。

所以,你的情况不行。