Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    cfquery in coldfusion

    Ciao Ragazzi,
    avrei bisogno di una dritta per la costruzione dinamica di tabelle.. mi spiego:
    Ho un database che contiene le mie tabelle complete. In questo DB ci sono 2 tabelle che contengono

    MasterTbl nomi tabelle
    DetailTbl nomi campi e loro costruzione (tipo e grandezza)

    io recupero i dati di alcune tabelle e le devo rigenerare in un'altro database!
    Questo è il mio codice

    Seleziono le tabelle che mi servono
    <cfquery name="SelTbl" datasource="OFAHR" dbtype="ODBC">
    Select
    TBCODICE,
    TBAZIENDA,
    TBCREATA
    from #session.AZIENDA[url.azi]#WEB_TBOF
    order by tbcodice
    </cfquery>

    <cfif #SelTbl.recordcount# NEQ 0>

    <cfloop query="SelTbl" startrow="1">

    seleziono i campi che compongono la tabella
    <cfquery name="SelcampiTbl" datasource="AHR" dbtype="ODBC">
    select FLNAME,FLTYPE,FLLENGHT,FLDECIMA
    from XDC_FIELDS
    where TBNAME = '#TRIM(SelTbl.TBCODICE)#'
    order by CPROWNUM
    </cfquery>

    <cfif #SelcampiTbl.recordcount# NEQ 0>
    <cfset contacampi = #SelcampiTbl.recordcount# - 1>

    <cfif #SelTbl.TBCREATA# EQ 'S'>
    se la tabella esiste la canlello
    <cfquery name="CANCELLATbl" datasource="OFAHR" dbtype="ODBC">
    <cfif #SelTbl.TBAZIENDA# EQ 1>
    DROP TABLE #session.AZIENDA[url.azi]##TRIM(SelTbl.TBCODICE)#
    <cfelse>
    DROP TABLE #SelTbl.TBCODICE#
    </cfif>
    </cfquery>
    </cfif>
    creo la tabella
    <cfquery name="CREATbl" datasource="OFAHR" dbtype="ODBC">
    <cfif #SelTbl.TBAZIENDA# EQ 1>
    CREATE TABLE #session.AZIENDA[url.azi]##TRIM(SelTbl.TBCODICE)#
    <cfelse>
    CREATE TABLE #SelTbl.TBCODICE#
    </cfif>
    (
    <cfloop query="SelcampiTbl" startrow="1" endrow="#contacampi#">
    #TRIM(SelcampiTbl.FLNAME)#
    <cfswitch expression="#SelcampiTbl.FLTYPE#">
    <cfcase value="C">
    Char(#SelcampiTbl.FLLENGHT#) NULL
    </cfcase>
    <cfcase value="N">
    Decimal(#SelcampiTbl.FLLENGHT#,#SelcampiTbl.FLDECI MA#) NULL
    </cfcase>
    <cfcase value="D">
    Datetime NULL
    </cfcase>
    <cfcase value="L">
    Bit NULL
    </cfcase>
    <cfcase value="M">
    Text NULL
    </cfcase>
    <cfdefaultcase>
    </cfdefaultcase>
    </cfswitch>
    <cfif #SelcampiTbl.currentrow# EQ #contacampi#>
    , cpccchk char(10))
    <cfelse>
    ,
    </cfif>
    </cfloop>
    </cfquery>
    </cfif>
    seleziono i dati dalla tabella sorgente
    <cfquery name="selezionaTbl" datasource="AHR" dbtype="ODBC">
    SELECT
    <cfloop query="SelcampiTbl" startrow="1" endrow="#contacampi#">
    #SelcampiTbl.FLNAME#
    <cfif #SelcampiTbl.currentrow# EQ #contacampi#>
    FROM
    <cfif #SelTbl.TBAZIENDA# EQ 1>
    #session.AZIENDA[url.azi]##SelTbl.TBCODICE#
    <cfelse>
    #SelTbl.TBCODICE#
    </cfif>
    <cfelse>
    ,
    </cfif>
    </cfloop>
    </cfquery>
    inserisco i dati nella tabella destinazione
    <cfloop query="SelezionaTbl" startrow="1">
    <cfquery name="InserimentoTbl" datasource="OFAHR" dbtype="ODBC">
    INSERT INTO
    <cfif #SelTbl.TBAZIENDA# EQ 1>
    #session.AZIENDA[url.azi]##SelTbl.TBCODICE#
    <cfelse>
    #SelTbl.TBCODICE#
    </cfif>
    (
    <cfloop query="SelcampiTbl" startrow="1" endrow="#contacampi#">
    #SelcampiTbl.FLNAME#
    <cfif #SelcampiTbl.currentrow# EQ #contacampi#>
    , cpccchk ) VALUES (
    <cfelse>
    ,
    </cfif>
    </cfloop>
    <cfloop query="SelcampiTbl" startrow="1" endrow="#contacampi#">
    #SelezionaTbl.SelcampiTbl.FLNAME# ( qui c'è il mio problema.. non riesco a tirar fuori il dato che dovrei trovare nella selezione SelezionaTbl )
    <cfif #SelcampiTbl.currentrow# EQ #contacampi#>
    , 'abcabcabca')
    <cfelse>
    ,
    </cfif>
    </cfloop>
    </cfquery>
    </cfloop>
    salvo la tabella come generata
    <cfquery name="update" datasource="OFAHR" dbtype="ODBC">
    update #session.AZIENDA[url.azi]#WEB_TBOF set tbcreata = 'S' where tbcodice = '#TRIM(SelTbl.TBCODICE)#'
    </cfquery>

    </cfloop>

    </cfif>


    allora per quanto riguarda la costruzione nessun problema ma ho difficoltà nell'inserimento dei dati. Devo per forza fare in questo modo in quanto i campi possono variare di frequente..

    Qualcuno ha un'idea su come tirar fuori sto benedetto dato? le ho provate un po tutte
    #SelezionaTbl.SelcampiTbl.FLNAME#
    #SelezionaTbl[SelcampiTbl.FLNAME]#
    #SelezionaTbl.SelcampiTbl.FLNAME[SelezionaTbl.CurrentRow]#
    ma non funziona nulla!

    Sono Disperato!

  2. #2

    Trovato

    #Evaluate("SelezionaTbl.#SelcampiTbl.FLNAME#[#SelezionaTbl.CurrentRow#]")#

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.