Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2006
neokobu neokobu is offline
Registrado
 
Registrado: jul 2006
Posts: 6
Poder: 0
neokobu Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 18-12-2006
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
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 :.
Responder Con Cita
  #3  
Antiguo 07-06-2007
pcjav52 pcjav52 is offline
Registrado
 
Registrado: mar 2007
Posts: 2
Poder: 0
pcjav52 Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 07-06-2007
Luis Heriberto Luis Heriberto is offline
Registrado
 
Registrado: abr 2006
Ubicación: Guadalajara
Posts: 6
Poder: 0
Luis Heriberto Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 07-06-2007
pcjav52 pcjav52 is offline
Registrado
 
Registrado: mar 2007
Posts: 2
Poder: 0
pcjav52 Va por buen camino
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)
);
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 10:50:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi