ColdFusion 9 CFScript Query с несколькими идентификаторами - PullRequest
4 голосов
/ 06 декабря 2011

Как с помощью CFScript вы можете получить список значений.ниже работает, если я передаю один идентификатор, но что вы делаете, чтобы передать несколько идентификаторов?

// Get Modules By IDs
function getModulesByIDs(string dsn,required numeric pIDS) {
     // Setup a variable for the Query Result
    var qResult = '';
    // Setup the Query variable
    var q= new query();
    // Add Parameter 
    q.addParam(name="ID", value=arguments.pIDS, cfsqltype="CF_SQL_INTEGER");
    // Create the SQL String
    var sqlString="
            SELECT    ROLEID,
                      ROLENAME,
                      NAME,
                      MODULENAME
            FROM      MODULEROLE
            WHERE     
                      MODULEIDS IN :ID
        ";
    q.setdatasource(arguments.pDsn);
    q.setsql(sqlString);
    qResult=q.execute().getresult();
    return qResult;  
}

1 Ответ

7 голосов
/ 06 декабря 2011

Используйте атрибут list, чтобы указать, что value содержит несколько идентификаторов, и добавьте круглые скобки, чтобы создать правильное предложение IN (..).

q.addParam(name="ID", value=arguments.pIDS, cfsqltype="CF_SQL_INTEGER", list="true");
...
var sqlString="... WHERE MODULEIDS IN (:ID )";
...