![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Argumentos incorrectos fuera del intervalo permitido o en conflicto con otros
Buen día, me arroja este error en c++ builder cuando intento hacer un consulta a la Base de datos (Maria DB) con esta francción de código
Código:
DM->ADOQuery->Close();
DM->ADOQuery->SQL->Clear();
DM->ADOQuery->SQL->Add("call loadPaciente(:cadena, 'Paciente_Identificador')" );
DM->ADOQuery->Parameters->ParamByName("cadena")->Value = Clave;
DM->ADOQuery->Prepared;
DM->ADOQuery->Open();
He visto otros hilos con este tema pero ningun ha sido de ayuda De antemano muchas gracias |
|
#2
|
||||
|
||||
|
Pon la definición del procedimiento almacenado para que podamos examinar qué pasa.
LineComment Saludos |
|
#3
|
|||
|
|||
|
Aqui esta el procedimiento almacenado
Filtro = nombre de la columna que debe consultar cadena = texto para hacer el filtro Última edición por roman fecha: 12-10-2017 a las 17:54:39. Razón: Corregir la etiqueta SQL |
|
#4
|
||||
|
||||
|
Cita:
LineComment Saludos |
|
#5
|
|||
|
|||
|
Código:
DM->ADOQuery->Close();
DM->ADOQuery->SQL->Clear();
DM->ADOQuery->SQL->Add( "SELECT cl00_Identificador, cl00_Nombre, cl00_ApellidoPaterno,"
"TIMESTAMPDIFF(year, cl00_FechaNacimiento, CURDATE()),"
"cl00_Telefono, cl00_Celular FROM cl00 ");
//Lo agrego en lineas diferentes porque aqui se toma una desición con un SWITCH para saber cual tabla va a consultar
DM->ADOQuery->SQL->Add("WHERE cl00_Identificador like :cadena "
"ORDER BY cl00_Identificador;" );
DM->ADOQuery->Parameters->ParamByName("cadena")->Value = Clave + '%';
DM->ADOQuery->Prepared;
DM->ADOQuery->Open();
Saludos |
|
#6
|
||||
|
||||
|
¿Qué pasa si antes de asignar valor al parámetro pones:
Código:
DM->ADOQuery->Parameters->ParamByName("cadena")->DataType = ftString;
LineComment Saludos |
|
#7
|
|||
|
|||
|
Cita:
Sigue mostrando el mismo error. Roman eh encontrado el error aunque no se como solucionarlo. Hice una prueba de la siguiente forma: Código:
DM->ADOQuery->SQL->Add("call loadPaciente( 'ma' , 'cl00_ApellidoPaterno') " );
|
|
#8
|
|||
|
|||
|
Solucion
Ya pude solucionar el problema.
Hice uso del componente ADOStoredProcedures El cual me permite enviar los parametros de la siguiente forma: Código:
DM->ADOStoredProcedure->Parameters->ParamByName("cadena")->Value = filtro;
DM->ADOStoredProcedure->Parameters->ParamByName("filtro")->Value = "Paciente_ApellidoPaterno";
"cadena" = nombre del parametro en el SP "filtro" = nombre del segundo parametro en el SP Muchas gracias por tu apoyo Roman Saludos |
|
#9
|
||||
|
||||
|
Pues, literalmente, no hay de qué
Estuve tentado a a mencionar el componente que ahora usas pero, aunque es el más adecuado, en teoría de la otra forma debía servir. Y habría que ver porqué la consulta directa sin el procedimiento almacenado no funcionaba. Pero lo bueno es que ya lo has solucionado.LineComment Saludos |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Mikropascal , La asignación a la variable de bucle no está permitido | gaston260 | ASM y Microcontroladores | 3 | 02-11-2010 02:04:53 |
| 1. Aún no tienes permitido poner enlaces ni imágenes | ESarger | La Taberna | 5 | 25-03-2010 22:10:59 |
| Instalar BDE manualmente ¿esta permitido?, ¿es legal? | Wonni | Varios | 2 | 02-08-2006 23:25:23 |
| Udf y argumentos | rastafarey | Firebird e Interbase | 2 | 29-07-2005 21:12:44 |
|