![]() |
ayuda con procedimiento y delphi
Hola a todos..!!!!
tengo un problema que me esta volviendo loco y me harian un gran fabor si me ayudaran: tengo el siguiente procedimiento en SQL SERVER: CREATE PROCEDURE Qry_buscardocente ( @var varchar(50), @sw smallint ) AS Begin IF (@sw=1) select * from docentes where nombre like @var+'%' order by nombre IF (@sw=2) select * from docentes where ci like @var+'%' order by nombre End Ejecutando des el ANALISADOR DE CONSULTAS funciona una maravilla exec Qry_buscardocente 'b',1 El problema es a la hora de conectar con DELPHI, hago los siguientes pasos: 1.- databasename=nominate 2.- storedprocname=Qry_buscardocente 3.- params @var datetype=ftString Paramtype=ptImput Type=String @sw datetype=ftSmallint Paramtype=ptImput Type=Integer 4.- active=true es en esta parte donde me sale un error:"Error creating cursorhandle" y no quiere activarse, he tenido este error antes con procedimiento de actualizacion pero a la hora de ejecutar el programa funcionaba con el siguiente codigo: DM.SPqry_nom_docente.Close;(esta linea solo cuando al ACTIVE=TRUE de lo contrario lo quito) DM.SPqry_nom_docente.Prepare; DM.SPqry_nom_docente.Params[0].AsString:=Ebuscar.Text; DM.SPqry_nom_docente.ExecProc; DM.SPqry_nom_docente.Open;(esta linea solo cuando al ACTIVE=TRUE de lo contrario lo quito) DBGbdocentes.DataSource:=DM.DSqry_nom_docente; El programa corre pero no muestra ningun resultado en el DBGRID ahhh algo que me olvidaba estoy utilizando el BDE nativo ¿sera que es mejor con ADO? y si es asi me podrian decir los pasos de como hacerlo Se los agradecere y como muestra de ello mensionare la ayuda que me den en mi PROYECTO.. Herbert's Quispe |
Hola:
Asocias el Datasource después de abrir el procedimiento almacenado ?? :confused: Ponlo en tiempo de diseño y ve que sucede... |
Buenas...
Nunca he llamado un procedimiento de MSSQL desde delphi de esa forma, siempre he preferido, poner una query en formulario y indistintamente si es query o procedimiento o lo que sea, ejecutarlo... Ademas no necesitas usar el EXEC para ejecutar un procedemiento, con tan solo su nombre el procedimiento se ejecuta siempre y cuando este en la DB que estes usando en ese momento. Intenta algo asi: Código:
Query.SQL.Text := 'mi_procedimiento_con_parametros ' + chr(39) + texto1 + chr(39) +',' + IntToStr(numero1) |
Hola:
Aquí tienes otro ejemplo que puede servirte:
|
Ayuda con Procedimiento y Delphi
Hola:
Me parece que la variante mas optima es utilizar un ADOStoreProcedure y en la propiedad ConnectionString configurar la conexion con la BD de SQL, una vez realizado esto lo unico que tienes que hacer es ejecutarla en el evento OnActivate del formulario donde esta el DBGrid con un codigo como este Código:
with BuscarDocente do Espero haberte ayudado en algo Saludos Luis Garcia _____________________________ La mejor manera de decir es hacer |
La franja horaria es GMT +2. Ahora son las 23:18:52. |
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