none
autocompletado RRS feed

  • Pregunta

  • buenas compañeros 

    una  favor lo que sucede es que yo realice un auto completado con jquery el cual traigo informacion de sql pero  no mesirve puesto que si la cantidad de datos de latabla son miles puede totiarme el sistema que realizo ,

    como puedo solucionar este problema

    lunes, 30 de mayo de 2016 14:27

Respuestas

  • hola

    que significa "totiarme " ? responde lento o estas obteniendo un timeout

    que base de datos utilizas?

    evaluaste crear en la db un Index en ese campos? imagen

    por lo general los indices mejoran la performance de la consulta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 30 de mayo de 2016 15:26
  • Hola wilcas, como menciona Leandro, puedes crear un índice o limitar el rango de respuesta a traves de un filtro o un tope de resultados.

    algo así como:

    SELECT TOP 1000 * FROM tu_tabla WHERE condicion = parámetro

    Saludos.


    Hasta Siempre.... Erick Martínez.

    lunes, 30 de mayo de 2016 15:36

Todas las respuestas

  • hola

    que significa "totiarme " ? responde lento o estas obteniendo un timeout

    que base de datos utilizas?

    evaluaste crear en la db un Index en ese campos? imagen

    por lo general los indices mejoran la performance de la consulta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 30 de mayo de 2016 15:26
  • Hola wilcas, como menciona Leandro, puedes crear un índice o limitar el rango de respuesta a traves de un filtro o un tope de resultados.

    algo así como:

    SELECT TOP 1000 * FROM tu_tabla WHERE condicion = parámetro

    Saludos.


    Hasta Siempre.... Erick Martínez.

    lunes, 30 de mayo de 2016 15:36
  • Hola wilcas, para limitar los resultados, debes colocar filtros en las consultas, en este caso sería al momento de enviar la petición con el ajax, al momento de procesarlo en la pagina de url: 'principal.aspx/' + WMname + '' deberias hacer el select con las condicionales, y si aún así te genera muchos resultados, colocar un tope, algo similar a esto:

    SELECT TOP 1000 * FROM tu_tabla WHERE tu_campo = tu_filtro

    Saludos.


    Hasta Siempre.... Erick Martínez.

    jueves, 2 de junio de 2016 23:31
  • si pero al retringir la cantidad de datos siempre me traeralos mismos  al crear otro wmetho con esta sentencia

      N'SELECT ' + @_CAMPO + ' FROM DEUDOR WHERE LTRIM(RTRIM( ' + @_CAMPO + ')) LIKE ' + @_informacion + '% GROUP BY' + @_CAMPO; podria traer por cantiadad pero no se en q parte llamarlo 

    viernes, 3 de junio de 2016 12:17
  • Esta sentencia la debes colocar en la pagina donde haces el procesamiento, es decir en el lado del servidor: url: 'principal.aspx/wmInfoDeudor', los resultados serán recibidos en la función de ajax.

    A lo que veo es:

    function wmConsulta(campo, nametitle, idtxt, WMname, tipo) {
                var datos = "{'campo':'" + campo + "'}";
                var result;
                $.ajax({
                    type: 'POST',
                    url: 'principal.aspx/wmInfoDeudor',
                    data: datos,
                    contentType: 'application/json; utf-8',
                    dataType: 'json',
                    async: false,
                    success: function (data) {
                        if (data.d.length > 0) {
                            result = data;

                            agregarTxt(result.d, nametitle, idtxt, WMname, tipo);
                        }
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert(textStatus);
                    }

                });
                return result;
            }

    //Organiza los datos obtenidos para el autocompletado----------------------------------------//
            function agregarTxt(resultado, nametitle, idtxt, WMname, tipo) {
                var newArray = [];
                if (resultado.length > 0) {
                    for (var i = 0; i < resultado.length; i++) {
                        newArray[i] = resultado[i].Data;
                    }
                }
                var sourceT = new Array;
                recorreGv(newArray, nametitle, idtxt, WMname, tipo);
            }

    En las partes con negrita es donde procesas el resultado de la consulta, por ello debes colocar lo que mencionas en el archivo wmInfoDeudor.

    Saludos.


    Hasta Siempre.... Erick Martínez.

    viernes, 3 de junio de 2016 16:00
  • si pero informacion en el sp seria la palabara que se va escribiendo el cual  busca en la tabla y de esta forma me va llenando el autocompletado


    • Editado wilcas viernes, 3 de junio de 2016 16:46
    viernes, 3 de junio de 2016 16:08
  • Debes colocar un escuchador para el evento textChanged para que en cada pulsación de tecla o cambio de texto, realice la consulta usando el método que indicas.


    Hasta Siempre.... Erick Martínez.

    viernes, 3 de junio de 2016 19:50