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
|
|||
|
|||
Problemas con procedimientos almacenados de informix en delphi
Que tal,
Estoy trabajando con Informix y Delphi 2006, pero no logro que los procedimientos almacenados me funcionen como en otras bases de datos. El primer problema es que no muestra el nombre de los parametros como debe de ser, sino sequencias de numeros (iniciando del '1','2' ...n) Otro problema es que me marca error al momento de ejecutar funciones almacenadas ... en los parametros ni siquiera detecta que debe obtener un resultado. Y otro problema es que necesito que me regrese cursores, ya que algunos resultados son varios renglones. Si alguien tiene infortacion y tips de como trabajar con informix en delphi le estare muy agradecido. Por lo pronto posteare si logro encontrar solucion a estos casos. Salu2. |
#2
|
|||
|
|||
Hola,
Tengo que aclarar que no conozco para nada Informix. Sin embargo viendo tu cuestión me surgen ciertas preguntas: Qué componentes utilizas para acceder a la BD? BDE acaso? En donde te muestra el nombre del los parámetros en el IDE de Delphi o en un gestor de Informix? Saludos!
__________________
Suerte .: Gydba :. |
#3
|
|||
|
|||
ok.. mira he trabajado con informix mucho... pero no desde deplhi.. lo trabajo sobre unix, aun que ahora tambien estoy tratanto de conectarme con delphi. y quisiera saber que componentes usas para conectarte y los pasos necesarios para realizar la conexion.., tengo muchos ejemplos de procedures, trigres etc., asi que podemos hacer unos cambios... tu me dices..
alugnos |
#4
|
|||
|
|||
Informix y BDE o ADO
Hola mira yo he utilizado los componentes de acceso a datos de BDE y de ADO voy primero con BDE
En efecto en los storeprocedures no reconoce los nombres, solo las posiciones por lo tanto al indicarle al componente TStoreProcedure el nombre del procedimiento almacenado y te vas a la sección de [PARAMS], guíate por el nombre que ahí te marca de igual manera cuando agregues los campos de respuesta, luego en tu código donde les asignes los valores a los parametros puedes utilizar la siguiente instruccion [Nombre Procedimiento].ParamByName('[nombre de parametro]').[tipo de dato] (AsString, AsInteger, AsDatetime, etc) Como Informix permite regresar un conjunto de registros, manéjalo como un simple dataset (Instrucciones First, Next, Previous, etc) y para hacer referencia a la columna sigues la siguiente instrucción: [Nombre Procedimiento].FieldByName('[nombre de columna]').[tipo de dato] (AsString, AsInteger, AsDatetime, etc) o [Nombre Procedimiento].Fields[posición de columan (inicia en cero)].[tipo de dato] (AsString, AsInteger, AsDatetime, etc) Bueno ahora con ADO tiene un componente que se denomina ComandText, dónde tú puedes introducir una instrucción de sql en la propieda comantext: EXECUTE PROCEDURE [NombreProcedimiento](valor parametro1, valor parametro2) y posteriormente a la instrucción [nombre componente].exec te puede devolver un dataset que lo manejas como cualquier otro y haces referencia a sus columnas por la posición [Nombre Procedimiento].Fields[posición de columan (inicia en cero)].[tipo de dato] (AsString, AsInteger, AsDatetime, etc) Espero que te sirva .. Saludos |
#5
|
|||
|
|||
Esa es una forma de Crear Procedimientos en informix
drop procedure "a713ap00".upd_historia;
create procedure "a713ap00".upd_historia(aclave INTEGER, arfc CHAR(13), aname CHAR(70), aingdt CHAR(8), ainidesc INTEGER) define aConsec integer ; -- Busca que se haya dado de alta previamente el RFC select max(fconsec) into aConsec from adhe_historia ; -- Checa si encontro clave a asignar if aConsec <= 0 then let aConsec = 1 ; else let aConsec = aConsec + 1 ; end if -- Agrega nuevo registro al historial insert into adhe_historia (fconsec, fcveadhe, frfc, fnombre, ingdt, finidesc) values(aconsec, aclave, arfc, aname, aingdt, ainidesc) ; end procedure -------------------TRIGGER drop trigger upd_usuario_his; create trigger upd_usuario_his update on usuario referencing old as adhe new as histo for each row ( execute procedure upd_usuario_historia(adhe.idUsuario ,adhe.Usuario ,adhe.Pwd) ); |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Procedimientos almacenados AS/400 | Carlos A Ortega | DB2 | 1 | 12-12-2006 00:32:39 |
Delphi y los procedimientos almacenados | efelix | Conexión con bases de datos | 10 | 06-11-2006 14:48:36 |
Procedimientos almacenados en delphi con storeprocedure | pgl | Firebird e Interbase | 7 | 05-11-2005 00:58:53 |
procedimientos almacenados | Gabriel2 | SQL | 1 | 13-01-2005 14:50:09 |
Procedimientos almacenados VS UDF | rqc | Firebird e Interbase | 6 | 18-03-2004 01:29:46 |
|