2011-09-29 14 views
7

Quando seleziono i dati da una tabella MySQL utilizzando il tag cfquery in ColdFusion 8, i nomi delle colonne vengono tutti convertiti in maiuscolo anche se li ho memorizzati in camelCase nella tabella del database. C'è un modo per far sì che ColdFusion rispetti il ​​caso dei nomi delle colonne?Come posso impedire a Coldfusion di convertire i nomi delle colonne delle query in maiuscolo?

Il motivo che mi chiedo è perché sto restituendo il risultato della query come un oggetto JSON e non voglio usare nomi di proprietà caso superiore sul lato JavaScript come mi riservo che convenzione di denominazione per le costanti.

risposta

5

Utilizzare getMetaData sull'oggetto query. Restituisce una matrice di colonne che mostrano lo stesso caso che hai usato nella query.

+1

Oh, mi dispiace - si desidera che il caso, come è nel database. Non superiore, e non ciò che l'SQL ha mostrato. Il meglio che puoi fare è usare cfdbinfo. Questo dovrebbe funzionare Dovresti usarlo e restituirlo insieme al risultato della tua query. –

+0

Per chiarire, ciò significherebbe che dovrei inviare sostanzialmente due oggetti JSON, uno contenente il set di risultati e uno contenente i nomi delle colonne? Quindi eseguire ancora un algoritmo di corrispondenza per abbinare i dati alle proprietà corrette? O c'è forse un modo per unire i nomi delle colonne recuperati da cfdbinfo con l'oggetto risultato della query? –

+1

Probabilmente creerei manualmente il JSON, usando i nomi delle colonne dalla ricerca CFDBINFO e i valori della query. –

7
queryName.getMetaData().getColumnLabels() 

restituire un array di etichetta di colonna query con custodia originale da Query

+0

Penso che abbiano bisogno del caso dal * database *. In tal caso, devono utilizzare le tabelle dei metadati di cfdboinfo o mySQL come indicato. Il metodo di metadati non documentato restituisce il caso utilizzato in sql che può essere totalmente diverso. Tutto dipende da come è stato digitato. – Leigh