Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DBlistbox (https://www.clubdelphi.com/foros/showthread.php?t=9230)

fabriciof 17-04-2004 19:23:22

DBlistbox
 
estimados amigos, escribo este email para hecerte una consulata acerca de las bases de datos , pretendo crear una base de datos que contenga ademas de los labels y buttons un dblistbox en esta base de datos pretendo almacenar caracteristicas de varias especies de plantas , pudiendo seleccionar el nombre de apartir del dblistboxy poder visualizar las propiedades, estoy utilizando un query , un data source , ya configure los campos del query y ya conecte tanto el dblistbox como el data source entre si ademas de definir el field que quiero mostar, el problemas es que cuando ejecuto o pongo query1.active:=true no obtengo ningun resultado , no se si tengo que adicionar algun codigo para poder visualizar es field.

gracias por tu comprension

marcoszorrilla 17-04-2004 20:27:10

No está del todo claro lo que quieres hacer, pero restringiéndome a como mostrar los resultados en una consulta:

La consulta tiene una propiedad Tstrings que posee un botón de elipsis, ...
si pulsas en él puede escribar el SQL correspondiente siempre que vaya a ser estático.

Código:

Select * from Clientes
Esto sería un ejemplo simple para visualizar todos los clientes y todos los campos de dicha tabla.

Si tienes que armar al vuelo el SQL, tendrás que utilizar algo como esto:
Código:

Query1.Close;
Query1.Sql.Add('Select Nombre, Apellidos, codigo, fecha');
Query1.Sql.Add('From Clientes');
Query1.Sql.Add('Where codigo = '+QuotedStr(Edit1.Text));
Query1.Open;

Si conectas el DataSource de esta consulta a una rejilla, podrás ver los resultados en pantalla.

Un Saludo.

fabriciof 19-04-2004 04:22:28

memoria insuficiente
 
gracias , me gutaria explicarme mucho mejor , pretendo crear una base de datos que contenga una serie de propiedades , que me muestre todas la especies de plantas en un listbox , y que cuando yo haga clic sobre algun nombre del listbox me aparescan las propiedades dentro de unos tedit, intente la siguiente consulta

query1.close;
query1.clear;
edit1.text:=query1.sql.add('select cropname from crop where cpnm='+listbox1.items[listbox1.itemindex]+' ');

pero dentro de tedit me aparece 0
luego intente

con
edit1.text:=query1.sql.add('select cropname from crop where cpnm='past' ');
donde pas es uno de los items de mi listbox y aun me dio 0

aveces me pasa que me da el mensaje de insuficient memory

por favor ayudeme , ya que este proceso me esta tomando mucho tiempo

marcoszorrilla 19-04-2004 07:53:27

Tendrías que explicar cuales son los campos de la tabla que consultas para saber exactamente como retomar los valores, pero suponiendo que la consulta esté bien planteada para recuperar los valores:

Con esto recuperarías el primer campo que te devuelve la consulta:

Edit1.Text:=Query.Fields[0].AsString;

Lo mejor es que pongas un DataSource conectado al Tquery y una rejilla conectada al DataSource, para ver que resultados te devuelve la consuslta y luego aplicas en consecuencia el ejemplo que he puesto.

Un Saludo.

fabriciof 19-04-2004 15:43:04

hola de nuevo y gracias , sabes hice lo que me dijiste y aun asi tengo un erro, luego trabaje con visual fox pro y obtuve el resultado correcto, salvo por una columna en la cual aunque existe el record PAST no me entrega resultado , es decir , cuando hago la consulta con cualquier otra columna todo sale bien

el campo cpnm es el problematico cuando hago una consulta , adicionando alguna rectriccion con otro campo como en este caso

select cpnm from crop2 where cropname='Agricultural Land-Generic'

obtengo resultado

pero sia hago la operacion inversa

select cropname from crop2 where cpnm='hay'

no tengo ningun resultado , a que se debe??

una vez verificado esto aplique como tu me dijiste a un db grid para poder visualizar el resultado de la busqueda

with query1 do
begin
close;
sql.Clear;
sql.add('select cpnm from crop2 where cropname='Agricultural Land-Generic');
open;
sql.free;
end;

y me salio error y como siempre ese insuficient memory que me trae loco

no se si podria mandate mi base de datos y mi aplicacion a tu email para que puedas darle un vistazo , siempre y cuando no sea una molestia , comprometiendome despues a entregar mis resultados , como es foro requiere

gracias


La franja horaria es GMT +2. Ahora son las 18:25:48.

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