как cfl oop запросить строку, если есть только 1 столбец - PullRequest
0 голосов
/ 03 марта 2020

это мой sql запрос

`CONST_SQL_clean="
    select    table_name from  tables where  TABLE_NAME  not in ('TBL_SY', 'TBL_USER')

        ";`

я хочу изменить результат и выполнить его как новый запрос для каждого имени таблицы, выбранного этим запросом

<cffunction name="clean_data" access="remote" returntype="struct" >


    <cfscript>
            lSqlManager = createObject("component","#request.stMapping.strCFC#.sqlManager");
            lSqlManager.setSqlString(CONST_SQL_select);                      

    </cfscript> 


      <CFQUERY NAME="qResult" DATASOURCE="#request.stMapping.strODBCName#">
            #lSqlManager.getSqlString()#
      </CFQUERY>

      <cfloop query="qResult">
      <cfset str= "delete" & #qResult# >
      QueryExecute  (str);
      </cfloop>
    <cfscript>
     return qResult;
    </cfscript>

1 Ответ

1 голос
/ 03 марта 2020

Упростите это. Это будет намного проще.

Сначала получите таблицы, которые вы хотите очистить.

<cfquery name = "tablesToClear">
select table_name
from tables
where table_name not in ('TBL_SY', 'TBL_USER')
</cfquery>

Теперь создайте свой l oop и удалите строки.

<cfoutput query = "tablesToClear">
<cfquery>
delete from #table_name#
</cfquery>
</cfoutput>
...