![]() |
duda con un sp ¿como buscar por descripcion?
tengo el siguiente procedimiento que funciona:
una sola clave con descripcion y existencias una segunda tabla con varias claves y cantidades lo que hace es descontar a la existencia la suma de cantidades por codigo a las existencias y mostrarlas. solamente es una consulta. existencia real ALTER PROCEDURE NEW_PROCEDURE ( VDESCRIP CHAR(50)) RETURNS ( STOTAL FLOAT, STRANSITO FLOAT, SEXISTENCIA FLOAT, SCODIGO CHAR(18), SDESCRIP CHAR(50)) AS DECLARE VARIABLE V_STRING CHAR(50); DECLARE VARIABLE V_TIPO CHAR(1); begin /* Procedure Text */ v_string = :vdescrip; /*select result from sp_substring(:v_string,1,50) into :v_string;*/ for select CODIGO, DESCRIP, coalesce(existencia,0) FROM cinve where 1=1 order BY descrip into :scodigo, :sdescrip, :sexistencia DO begin select coalesce(SUM(CANTIDAD),0) FROM cmovim WHERE CODIGO = :scodigo INTO :stransito; stotal = :sexistencia - :stransito; suspend; END end lo que deseo que haga es enviarle el parametro descripcion, si lo que envio es una parte de la descripcion, pues que me muestre todos lo que cumplen parte de esa descripcion. :confused: en delphi hago algo parecido con un ' AND nombre LIKE ''%'+txtNombreBusq.Text+'%''', pero aqui no logro hacerlo funcionar. alguna sugerencia??? gracias |
Si estas trabajando con firebird 1.5 o posterior, puede utilizar for execute statement en lugar de for select. La ventaja es que el for execute statement te permite tener selects dinamicos.
En tu caso la consulta seria algo como:
Recuerda que '' sirve para representar una comilla simple, entonces ''%' equivale a '% '%'' equivale a %' El inteprete dependiendo de lo que llegue en vdescrip dara por resultado: and descrip like '%vdescrip%' Espero te sea de utilidad. |
La franja horaria es GMT +2. Ahora son las 04:36:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi