PDA

Ver la Versión Completa : 2 preguntas


DarkSton
16-09-2023, 11:45:37
estoy usando este codigo
ValueListEditor1.Strings.Clear;
DataModule2.ZQuery.Close;
DataModule2.ZQuery.SQL.Clear;
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE Nombre ');/
DataModule2.ZQuery.Open;
DataModule2.ZQuery.ExecSQL;
ClientDataSet.Close;
ClientDataSet.SetProvider(DataModule2.DataSetProvider);
clientdataset.Open;
while not clientdataset.eof do
begin
ValueListEditor1.InsertRow(ClientDataSet.FieldByName('Item1').AsString,ClientDataSet.FieldByName('No mbre').AsString, True);
clientdataset.next;

end;

todo bien pero solo me carga 67 lineas lo cual hay mas de 150 registros
lo otro seria buscar por nombre
poner una letra en un edit1 yhacer que aparescan todos los nombre con la primera letra en el ValueListEditor1 o usar otro editor

Casimiro Notevi
16-09-2023, 15:23:00
No se entiende bien lo que estás haciendo, lo que quieres hacer, el problema y cómo lo estás enfocando.
De todas formas, ese select está mal, eso no funcionará y te dará error:
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE Nombre ');/
Además sobra esta línea:
DataModule2.ZQuery.ExecSQL;Y después, no se sabe para qué asignas el datamodule2 al clientdataset :confused:

DarkSton
16-09-2023, 16:57:06
Pasa que al usar el stringGril igual solo me carga 67 datos de mi db ,lo otro del ;/ ese / omitelo
DataModule2.ZQuery.ExecSQL
Usando eso no tengo problemas
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE ITem1 = 6485');
si uso es me muestro hasta 150 usuarios con el mismo item pero solo le pongo
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE item1 ');
Me muestra 67 ,omite el resto de registro

pgranados
16-09-2023, 19:27:04
Tampoco entiendo que es lo que buscas hacer :confused: ¿Puedes explicarnos mejor?

Casimiro Notevi
17-09-2023, 11:12:10
Y aparte de no entenderse lo que preguntas, por favor, recuerda nuestra guía de estilo (https://www.clubdelphi.com/foros/guiaestilo.php) y procura poner títulos descriptivos a tus preguntas: "2 preguntas" no describe nada del problema.

Neftali [Germán.Estévez]
18-09-2023, 08:25:41
He de decir que sin más datos es difícil saber qué está pasando.
Si ejecutas o muestras en un mensaje (de forma temporal) esto, ¿qué aparece?

DataModule2.ZQuery.RecordCount



Código Delphi [-] (https://www.clubdelphi.com/foros/#)
DataModule2.ZQuery.ExecSQL[/DELPHI]

Utiliza un Open, en lugar del ExecSQL.



Usando eso no tengo problema:
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE ITem1 = 6485');

si uso es me muestro hasta 150 usuarios con el mismo item pero solo le pongo
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE item1 ');

Me muestra 67 ,omite el resto de registro

Eso tiene lógica, porque la primera SQL es correcta, la segunda es incorrecta y no sé qué estará haciendo.

duilioisola
18-09-2023, 15:03:43
No se qué motor de base de datos utilizas, pero la parte "WHERE ITEM1" no debería funcionar.
Si el motor entiende "WHERE ITEM1" como booleano, entonces podría suponer que de los 150 registros 67 tienen un valor distinto de 0 y el resto 0.
0 se entiende como falso y un valor positivo como verdadero.

Esto puedes comprobarlo filtrando "ITEM1=0"

// Filtrando los elementos de la tabla LIST en donde el campo ITEM1 = 0
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE ITem1 = 0');



Si no quieres filtrar por ITEM1, deberás quitar todo el WHERE.


// Filtrando los elementos de la tabla LIST en donde el campo ITEM1 = 6485
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list WHERE ITem1 = 6485');

// TODOS los elementos de la tabla LIST. Sin filtro.
DataModule2.ZQuery.SQL.Add('SELECT Nombre,Item1 FROM list');