Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Llamar Stored procedure

Estas en el tema de Llamar Stored procedure en el foro de SQL Server en Foros del Web. Buenas tardes, Creo que este es el Foro correcto, si no es así, disculparme e indicarme la categoria correcta. Estoy empezando a programar Stored Procedures ...
  #1 (permalink)  
Antiguo 27/07/2015, 11:41
 
Fecha de Ingreso: febrero-2015
Mensajes: 55
Antigüedad: 9 años, 9 meses
Puntos: 7
Llamar Stored procedure

Buenas tardes,
Creo que este es el Foro correcto, si no es así, disculparme e indicarme la categoria correcta.

Estoy empezando a programar Stored Procedures para que sean lanzadas desde una pagina web php.

Tengo la siguiente tabla
Código MySQL:
Ver original
  1. CREATE TABLE [dbo].[PRUEBAS](
  2.     [usuarios] [nvarchar](max) NULL
  3. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Y la siguiente Procedure

Código SQL:
Ver original
  1. USE [GES]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[XXX99_PRUEBACALL_PHP]    Script
  4.  
  5.  
  6. ALTER PROCEDURE [dbo].[XXX99_PRUEBACALL_PHP]
  7.  
  8.      @usuarios AS NVARCHAR(90)
  9.  
  10. AS
  11. BEGIN
  12.  
  13.     INSERT INTO dbo.PRUEBASCALL
  14.            (usuarios
  15. )
  16.      VALUES
  17.             (@usuarios
  18. )
  19.  
  20.  
  21.  
  22. END

Desde la pagina web php tengo un simple input donde escribo un usuario por ejemplo "PEPITO" y no lo acepta, pero si escribo numeros, si realiza el insert.
Me da el siguiente error.

Código HTML:
Ver original
  1. Array ( [0] => Array ( [0] => 22018 [SQLSTATE] => 22018 [1] => 0 [code] => 0 [2] => [Microsoft][SQL Server Native Client 11.0]Invalid character value for cast specification [message] => [Microsoft][SQL Server Native Client 11.0]Invalid character value for cast specification ) )

Se que la conversión no la está realizando correctamente, pero al crear la tabla le indico que es NVARCHAR, al lanzar la Procedure también....

Por favor, me puede guiar alguien?
Muchas gracias.
  #2 (permalink)  
Antiguo 27/07/2015, 14:24
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Llamar Stored procedure

Por principio de cuentas un campo NVARCHAR(MAX) para guardar "PEPITO", "JUANITO", "RODOLFITO", etc. es demasiado espacio desperdiciado, creo que con un simple VARCHAR(30), bastaría y sobraría.

Ahora bien, puedes decirme como estas ejecutando el store procedure, que aca entre nos, seria bueno que le pusieras al nombre algo mas entendible, por ejemplo usp_InsertaPruebas
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 28/07/2015, 03:53
 
Fecha de Ingreso: febrero-2015
Mensajes: 55
Antigüedad: 9 años, 9 meses
Puntos: 7
Respuesta: Llamar Stored procedure

Cita:
Iniciado por iislas Ver Mensaje
Por principio de cuentas un campo NVARCHAR(MAX) para guardar "PEPITO", "JUANITO", "RODOLFITO", etc. es demasiado espacio desperdiciado, creo que con un simple VARCHAR(30), bastaría y sobraría.

Ahora bien, puedes decirme como estas ejecutando el store procedure, que aca entre nos, seria bueno que le pusieras al nombre algo mas entendible, por ejemplo usp_InsertaPruebas
Muchas gracias por la respuesta, ya se que es mucho nvarchar(max), pero estaba probando en local y queria saber porque numeros si me los guardaba y no letras...
El problema era en php las comillas....

Antes
Código PHP:
Ver original
  1. $stored = "{call XXX99_PRUEBACALL_PHP($usuarios)}";
Despues
Código PHP:
Ver original
  1. $stored = "{call XXX99_PRUEBACALL_PHP('$usuarios')}";

Etiquetas: procedure, server, sql, stored, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.