2016-08-18 14 views
0

Вместо использования ? меток в операторе SQL для параметров, я хотел бы использовать именованные поля, как это более читабельным, чем WHERE something = ? AND somethingelse < ? and whatever LIKE ?Intersystems Cache Названный CacheParameter

ли следующее возможно в ином качестве?

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); 

Значение параметра устанавливается, чтобы получить все строки, в которых имя начинается с, и передается параметр к CacheCommand объекта:

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

ответ

2

именованных параметров SQL в Caché доступных только двумя способами.

  • Embedded sql с & sql(). Вы не можете использовать этот путь, работая с .Net, только потому, что это только CacheObjectScript.
  • Class Query Вы также не можете использовать его, просто потому, что такие SQL-запросы должны быть определены самим классом, а когда вы его вызываете, вы должны просто передать все аргументы без имен.

Итак, в вашем случае нет способа.

+0

Отлично, спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^