Problema de String

25/07/2011 - 22:27 por Mike | Informe spam
Que tal compañeros tengo un pequeño detalle, resulta que tengo un
storeprocedure que tiene un parametro char que recibe una cadena de
todos los tickets a facturar, yo le mando lo siguente '120,134,230' y
lo recibe el store procedure

NombredeSP
@valor char(20)

Select sum(VtatotalMN),Sum(VtatotIva),
sum(VtatotalMN) - Sum(VtatotIva)
from ventas where SuCveSucur=1 and VtaNumFol in(@valor)

pero cuando lo procesa me dice que no se puede convertir, como puedo
hacer esto, hay alguna manera de hacerlo...

saludos
mike

Preguntas similare

Leer las respuestas

#1 Richard García
26/07/2011 - 13:51 | Informe spam
On 25 jul, 15:27, Mike wrote:
Mostrar la cita
Hola Mike,

qué tipo de campo es la columna VtaNumFol por la que quiere
consultar?. Trate de que la variable @valor sea del mismo tipo de
campo que la columna VtaNumFol.

También podría probar enviando solo un valor en la variable,por
ejemplo '120' y convertir la condición en where SuCveSucur=1 and
VtaNumFol = @valor.

Esto para garantizar que por lo menos la condición sí aplica y ya
revisar porqué al enviar varios parámetros está poniendo problema.

Lo último que se me ocurre si el problema persiste es crear una
consulta dinámica donde concatene la variable @valor y hacer un print
para ver exactamente qué valores recibe esa variable.

Espero haber ayudado en algo, me cuenta por favor cómo le fue.
#2 Mike
26/07/2011 - 19:04 | Informe spam
On 26 jul, 04:51, Richard García
wrote:
Mostrar la cita
Gracias Richard por tu tiempo
Estuve buscando en grupos y internet y encontre esta solucion:
set @sql='Update Ventas set VtaNumFact=' + str(@folio) +
',VtaStatusFact=' + 'Facturado' +
' where Sucvesucur='+ Ltrim(Str(@sucursal)) + ' and VtaNumFol in(' +
rtrim(@numerodetickets) + ')'
exec (@sql)
no es el mismo ejemplo que puse pero es igual, ahora el problema que
tengo es donde esta VtaStatusFact ya que el estatus de la factura le
tengo que poner Facturado pero me dice que no se puede porque le
faltan las ' ' osea pone VtaStatusFact=Facturado no
vtaStatusFact='Facturado' no encuentro como poner las comillas le puse
''Facturado'' pero marca error..

saludos
Mike
#3 Richard García
27/07/2011 - 14:48 | Informe spam
On 26 jul, 12:04, Mike wrote:
Mostrar la cita
Hola Mike,

me alegro de que halla encontrado la solución. A esa misma solución me
refería con "consulta dinámica".

Para las comillas debe concatenar char(39), quedando la consulta de la
siguiente forma:

set @sql='Update Ventas set VtaNumFact=' + char(39) + str(@folio) +
char(39) + ...

Si no estoy mal el código 39 corresponde al ASCII del carácter '.
También puede concatenar char(13). Esto solo es un salto de línea para
que toda la sentencia Update no quede a lo largo y al momento de hacer
un print a @sql sea mas legíble el código, pero eso ya es opcional.

Espero le sirva,

Por favor me comenta cómo resultó todo.
#4 Mike
27/07/2011 - 19:30 | Informe spam
On 27 jul, 05:48, Richard García
wrote:
Mostrar la cita
Richard, tuve que cambiar toda la programacion porque no encontre esa
solucion, pero ya supe como se ponen las comillas,
no se me ocurrio esa solucion..

Gracias
Mike
Ads by Google
Search Busqueda sugerida