FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problema con Cursor en SQL Server 2008
Hola Club Delphi, hice un SP en donde dentro creo un cursor y recorro los registros tomados por el select realizando distintos tipos de operaciones. Intento devolver un conjunto de resultados, digamos que por cada registro que recorro, intento mostrar un total y algunos otros datos como el Codigo, Nombre, Ciudad del empleado en este caso.
Al ejecutarlo desde el Management Studio de SQL Server veo que solo me muestra como resultado el ultimo registro por que el paso. Digamos si recorrió 5 empleados me muestra los datos del ultimo. y en una solapa de mensajes me muestra los valores de cada uno de lo empleados esto es por el PRINT. El inconveniente de esto no termina aca, en mi aplicación cuando pongo un TSQLStoredProc me carga los parametros pero al hacer un OPEN me aparece Error: SQLStoredProc: Cursor not returned from Query. Traducido al castellano seria: El cursor no regresa consulta. Interpeta digamos que el cursor solo devuelve un solo resultado y tengo que utilizar el comando ExecProc es como si el PRINT en realidad no retornana resultado solo muetra mensajes y no es interpretado por DELPHI como un conjunto de resultados. Intente cambiar el PRINT por el RETURN pero al hacer esto sale en la primera vuelta del bucle devolviendo los datos del Empleado ubicado en la 1º posición. Alguien sabe en que le estoy errando? Eh buscado informacion en distinto sitios y nada... Yo no se si mi error esta en el cursor o es que tengo que utilizarlo de otra manera desde DELPHI. No se también como tratar el tema de que este SP tiene parámetros de salida, digamos no se si se crean antes de la ejecucion o solo devuelven valor luego de ejecutarse pero este es otro tema. Utilizo DBExpress, DELPHI 2010. Gracias. |
#2
|
|||
|
|||
Tienes razón, el print no te regresa un resultado, es mas bien con fines de depuración... lo que hago, es hacer una tabla temporal, vaciar los resultados y al final regresar la tabla...
Saludos! |
#3
|
||||
|
||||
Es mejor usar TSQLQuery que TSQLStoredProc cuando vas a obtener un cursor (TSQLStoredProc es para ejecutar un SP que no devuelve resultados o que los devuelve como simples parámetros de salida, no como filas).
Por otra parte, recuerda que los conjuntos de datos DBX (TSQLXXX) son unidireccionales y mientras no hagas "Next", no traerá la siguiente fila (lo normal es acompañarlos con TClientDataSet). |
#4
|
||||
|
||||
Cita:
Si pero no hay Campos persistentes para hacer NEXT y sale error. |
#5
|
||||
|
||||
Como cualquier tipo de query, haces una simple consulta sobre el SP:
¿Qué error aparece en tu pantalla? Me tendrás que perdonar, pues mi vista es mala y desde aquí no logro ver más allá del canal de Panamá. Por otro lado, no entiendo la relación que haces entre campos persistentes y llamar al método Next de un conjunto de datos, ¿podrías explicarlo? Saludos. |
#6
|
||||
|
||||
Cita:
Al hacer active = true me muestra El nombre de objeto 'pSJFondoDesemCursor' no es válido. Como que no es valido llamar un SP de esta manera, porque lo que busca la consulta es una Tabla, capaz que en otras BD funcione pero en SQL Server creo que no por lo visto. Probe con el ClientDataSet si intento hacer un OPEN me aparece: TDBXError with message 'Remote error: SQLStoredProc: Cursor not returned from Query'. Al usar ClientDataSet.Execute, no da error pero solo devuelve dos parámetros con valores de los 11 y tambien los deveulve para el ultimo registro, si intento hacer algo como esto:
Me da el sig error en el OPEN: TDBXError with message 'Remote error: Could not convert variant of type (OleStr) into type (Date)'. Voy a buscar mas acerca de esto error quizás sea solucionable y pueda funcionar. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Windows 2008 server | Toni | Windows | 7 | 29-07-2011 00:23:04 |
Problema al conectar BDE con SQL Server 2008 | QuarkBcn | Conexión con bases de datos | 4 | 10-09-2010 14:35:43 |
Problema DBExpress en Windows Server 2008 | cmagno | Conexión con bases de datos | 0 | 12-02-2009 14:39:11 |
Sql Server 2008 disponible | poliburro | Noticias | 28 | 17-08-2008 13:30:04 |
Win Server 2008 | Casimiro Notevi | Noticias | 40 | 12-03-2008 23:37:43 |
|