function uniquedbLookup(server,base,visao,chave,coluna){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
if (server != "") server = "http://"+ server;
if (base != "") base = "/"+base +"/";
var start = Number(chave);
//urlgetfrm = trim(server)+trim(base)+visao+"?readviewentries&count=99999";
urlgetfrm = trim(server)+trim(base)+visao+"?readviewentries";
xmlDoc.load(urlgetfrm);
if (start > xmlDoc.documentElement.childNodes.length)
start = xmlDoc.documentElement.childNodes.length;
//alert("Procurar a partir da posicao " + start + " da visao");
//pegando a entrada de acordo com a chave ou de acordo com o count da view
urlgetfrm = trim(server)+trim(base)+visao+"?readviewentries&start="+start+"&count=1";
xmlDoc.load(urlgetfrm);
var count = 0;
var flag = xmlDoc.documentElement.childNodes(0).childNodes.item(0).text;
// alert("Valor da posicao " + start +" = " + flag);
while (flag !=chave & flag != "")
{
// if (count != 0)alert("Ultimo valor lido é " + flag);
count = start -1; //pegando ate a ultima posicao antes do inicio da lista anterior
// forçando a procura inciar em N posicoes atras ou no primeiro documento da view
start = start - 1000;
if (start < 0) start = 1;
// alert("Pegando " + count + " documentos, a partir da posicao " + start);
urlgetfrm = trim(server)+trim(base)+visao+"?readviewentries&start="+start+"&count="+count;
xmlDoc.load(urlgetfrm);
nodes = xmlDoc.documentElement.childNodes; //corresponde a nova collection
var numchave = Number(chave);
// alert("Numero de arquivos:" + nodes.length);
var volta = "";
for (var i = 0; i < nodes.length; i++)
{
// alert(nodes.item(i).childNodes.item(0).text);
var numero = Number(nodes.item(i).childNodes.item(0).text);
if (numero > numchave)
{
if (i==0) volta = (nodes.item(i).childNodes.item(0).text); //primeiro valor da lista é maior, entao refazer a lista, buscando mais atras
else volta = ""; // encontrou valor maior depois do 1º valor lido => valor procurado nao existe
break;
}
else if(nodes.item(i).childNodes.item(0).text==chave)
{
volta = nodes.item(i).childNodes.item(0).text;
break;
}
}
flag = volta;
///alert(flag);
}
return(volta);
}
Nenhum comentário:
Postar um comentário