В моей системе есть несколько функций, которые следует преобразовать из CFML в CFSCRIPT.Работая над этим проектом, я столкнулся с ситуацией, когда моя структура выдает больше результатов (много пустых строк), чем нужно, даже запрос возвращает только одну строку.Вот пример моего кода в CFSCRIPT:
cfstoredproc( procedure="GetZip", datasource=Application.dsnRead ) {
cfprocparam( dbvarname="@Zip", value=trim(52401), cfsqltype="cf_sql_char", maxlength=5 );
cfprocresult( name="ZipResult" );
}
local.strZip = {};
strZip[ZipResult.RecID] = {
"City" : trim(ZipResult.City),
"State" : trim(ZipResult.State)
};
writeDump(strZip);
Вот что я получаю для вывода:
array
1 [undefined array element]
2 [undefined array element]
3 [undefined array element]
4 [undefined array element]
5 [undefined array element]
6 [undefined array element]
7 [undefined array element]
8 [undefined array element]
9 [undefined array element]
10 [undefined array element]
11 [undefined array element]
12 [undefined array element]
13 [undefined array element]
14 [undefined array element]
...
Мне интересно, каков наилучший способ вывода результата запроса (s) в структуре и использовать RecID
в качестве уникального ключа?Этот пример и запрос выше всегда будут возвращать 1 запись за один раз, но мне также интересно, как этот код будет работать, если мне понадобится перебрать результат запроса с несколькими записями?
Обновление: я думаю, что нашел проблему.RecID
- это идентификатор автоинкремента в моей таблице базы данных.Когда я возвращаю RecID
значение может быть, например, 56743
.Так что, если я передам RecID в качестве ключа в моей структуре, это приведет к такому количеству строк в структуре.У меня вопрос как это предотвратить?Есть ли способ просто установить ключ?