Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2005
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 24
cahp Va por buen camino
Hola,

te puede asegurar que :
Código SQL [-]
select *
from marcas
desde delphi con un ibquery y despues ibquery.open.

siendo marcas
Código SQL [-]
CREATE PROCEDURE MARCAS 
returns (MARCA VARCHAR(15))
AS 

begin
for
   select distinct Marca
   from productos
   into :Marca
do
   begin
      if (:Marca is null) then exit;
      suspend;
   end
end
funciona perfectamente, devuelve tantas lineas como hay distintas en la tabla productos.

Saludos.
Responder Con Cita
  #2  
Antiguo 12-08-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
resp

Ese codigo esta perfecto tu problema debe ser otro.

Lo unico que puedo es decirte que tienes codigo redundante
Código SQL [-]
CREATE PROCEDURE MARCAS 
returns (MARCA VARCHAR(15))
AS 
begin
  for select distinct Marca
    from productos
    Where Marca is not Null
    into :Marca
  do
    suspend;
end
Aunque pienso que podrias hacer la consulta directamente ya que no veo el caso para el suo del procedimiento
Código SQL [-]
select distinct Marca
from productos
 Where Marca is not Null
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #3  
Antiguo 12-08-2005
Phacko Phacko is offline
Miembro
 
Registrado: jul 2004
Posts: 157
Poder: 23
Phacko Va por buen camino
Continúa el problema.....

Que tal???? primero que todo, gracias por su ayuda.

Iniciaré por decir que olvidé mencionar que uso pocedimientos almecenados porque la base de datos se va a emplear en red y aunque no son muchos clientes, decidi comenzar a trabajar en el servidor con ésto, de una vez por todas.

Bien, pues ya habia utilizado IBQuery.OPen y seguian vastos, ya que no me agrega ningun dato a la lista, Cambie el control ComboBox por un DBLookUpComboBox pero únicamente agrego un elemento a la lista, he intentado variando codigo pero nada, cuando no me da error no agrega elementos a la lista esta es la forma en la que llamo al procedimiento almacenado desde delphi ya sea mediante un boton o al activar la form:
Código Delphi [-]
  Modulo.IBQProdMarca.Open;
  CBMarca.Items.Add(Modulo.IBQProdMarca.ParamByName('marca').AsString);

y en el componente IBQProdMarca tengo el siguiente codigo:
Código SQL [-]
 Select *
From Marcas

el procedimiento almacenado aun es el anotado al inicio de este hilo, vuelvo a comentar que si ejecuto el Procedimiento almacenado con:
Código Delphi [-]
Modulo.IBSPProdMarca.ExecProc;
se agrega únicamente un elemento a la lista, pero si utilizo la consulta como la he indicado no agrega elemento alguno.

Sera necesario eliminar el componente IBStoredProc del modulo de datos? ya no se ni lo que digo.

Les agradesco de antemano su ayuda, Gracias.
Responder Con Cita
  #4  
Antiguo 17-08-2005
Phacko Phacko is offline
Miembro
 
Registrado: jul 2004
Posts: 157
Poder: 23
Phacko Va por buen camino
El problema no es la consulta sino como agregar los datos....

Que tal??? de nuevo aqui.

El procedimiento almacenado funciona bien al igual que la consulta, lo verifique usando un DBGrid en el cual se muestran los resultados como se esperaba, el problema es que se necesita en un ComboBox, ya que se requiere seleccionar alguna de estas opciones que se obtienen de la base de datos y tambien se debe permitir agregar nuevos datos a la base, tecleados a travez del mismo ComboBox.

El codigo que utilizo para hacer la llamada y agregar los resultados de la consulta al ComboBox es el siguiente:
Código Delphi [-]
Modulo.IBQProdMarca.Open;
CBMarca.Items.Add(Modulo.IBQProdMarca.ParambyName('marca').AsString);

y da el error:
El proyecto a originado una excepción clase EDataBaseError con el mensaje "IBQProdMarca:Parameter 'marca' no encontrado......

lo da en la linea donde trato de llenar el ComboBox, cambie el codigo y nada, por lo que mi duda es, ¿como hacer referencia al valor que me retorna la consulta sobre el procedimiento almacenado para rellenar el ComboBox?

Gracias de antemano.
Responder Con Cita
  #5  
Antiguo 17-08-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Prueba con este código:

Código Delphi [-]
Modulo.IBQuery.Close;
Modulo.IBQuery.SQL.Clear;
Modulo.IBQuery.Add('Select * From Marcas');
Modulo.IBQuery.Open;
while not Modulo.IBQuery.Eof do
begin
  CBMarca.Items.Add(Modulo.IBQuery.FieldByName('Marca').AsString);
  Modulo.IBQuery.Next
end;
Modulo.IBQuery.Close

Saludos...
Responder Con Cita
  #6  
Antiguo 19-08-2005
Phacko Phacko is offline
Miembro
 
Registrado: jul 2004
Posts: 157
Poder: 23
Phacko Va por buen camino
Perfecto....

Que tal???

Muchas gracias Marcos, todo a la perfección.

Reitero, gracias por tu ayuda.

Buen día.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 02:54:29.


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