PDA

Ver la Versión Completa : Busqueda de registros con Sql


muppett
23-09-2007, 05:52:34
Hola estoy haciendo una base de datos y necesito buscar registros solo q me marca un error en la sentencia :
table1.sql.open
dice q no he declarado la sentencia sql me podrian decir x q???? no estare haciendo las conexiones correctas o q pasa
:confused:

waly2k1
23-09-2007, 06:19:39
Si es una tabla no incluyas .sql.open
sino tabla1.open o tabla1.Active := true;

Salu2

Caral
23-09-2007, 16:10:46
Hola
Puedes utilizar un componente Table para filtrar información, pero para hacer una búsqueda determinada por campos etc., necesitas utilizar un componente Query, este es el que trabaja con sentencias SQL.
Hay diferencias en estos, si explicas un poco mas lo que quieres hacer, seguro te ayudaran mas.
Saludos

poliburro
23-09-2007, 18:51:32
Hola estoy haciendo una base de datos y necesito buscar registros solo q me marca un error en la sentencia :
table1.sql.open
dice q no he declarado la sentencia sql me podrian decir x q???? no estare haciendo las conexiones correctas o q pasa
:confused:


Considero que debes proporcionar más información.

El error que te marca,
Los valores que le has asignado al Table1
Si Table 1 se refiere a TTable o a otro tipo de componente.
La configuración de conexión.

etc

muppett
23-09-2007, 22:10:16
table1.sql.text:='select * from cliente where numcliente='+edit1.Text;
y el error q marca es
[Error] Unit13.pas(62): Undeclared identifier: 'sql'
estoy utilizando un Ttable y un Datasource la tabla la cree con Paradox7

waly2k1
23-09-2007, 22:14:47
Esta aplicación se autodestruirá en....

No viejo, el componente TTable es para traerte una tabla completa sin filtros, lo que intentas hacer debes hacerlo con un TQuery.

Si quieres usar un TTable en la propiedad TableName escribes el nombre de la DBF, y no tienes mas que hacer el .open si lo cierras y sin .SQL ya que de la forma que estas programando es para componentes TQuery.

Saludos

Caral
23-09-2007, 22:15:50
Hola muppett
Como te henos explicado anteriormente, un componente table se usa para mostrar todo el contenido de una tabla, con este componente no se efectuan sentencias sql para eso esta el componente query.
Nos sigues mostrando el Table.
Pregunto es asi como lo llamaste en su propiedad name?, porque nos estas dejando igual.
No que tienes que hacer es esto:

Query1.sql.text:='select * from cliente where numcliente='+edit1.Text;
Ves la diferencia.
Espero que si
Saludos

muppett
23-09-2007, 22:49:19
Hayy no soy un caos miren les voy a tratar d explicar q quiero hacer a ver si asi es mas facil q me ayuden

Estoy buscando un registro y quiero q me lo muestre en unos edit.text para poder eliminarlos.
Ya puse el query pero no me los muestra este es el codigo q tengo

if(edit1.Text<>'')then
begin
try
query1.SQL.Text:='select * from cliente where numcliente='+edit1.Text;
query1.Open;
except
application.MessageBox('Introduzca solamente números','ERROR',1);
end;//del try except
try
if(table1.RecordCount=0) then
application.MessageBox('No existe ID','ATENCION',1)
else
begin
if(edit1.Text<>'')then
if (table1.RecordCount<>0) then
begin
edit2.Text:=table1.FieldValues['nombre'];
edit3.Text:=table1.FieldValues['direccion'];
edit4.Text:=table1.FieldValues['telefono'];
edit5.Text:=table1.FieldValues['ciudad'];
end;

por favor expliquenme detalladamente x q casi no se nada d delphi

Delphius
24-09-2007, 00:40:35
Hola muppett,

Veo que vas mejorando... pero no estas siguiendo al pie de la letra los consejos que te han aportado. He visto tu código (que por cierto te aconsejo que empieces a usar las etiquetas DELPHI) y puedo apreciar que estás mesclando TTable con TQuery.
Primeramente lanzas una consulta, bueno.. barbaro. Y seguidamente averiguas en TTable cuales son los registros... eso está mal. Una vez que lanzas la consulta con TQuery, es este componente quien tiene los resultados no el TTable. Por lo que debes preguntar por RecordCount de éste. Es decir:

if (Query1.RecordCount > 0)
then ShowMessage('Hay registros devueltos por la consulta')
else ShowMessage('No hay registros devueltos por la consulta');

Bueno, por ahora hasta allí veo que la mano. Como dije antes, emplea las etiquetas DELPHI para que el código que nos muestra sea más entendible a la vista.

EDITO:
Viendo que dices que no sabes nada de Delphi creo que es hora de hagas una leída a La Cara Oculta de Delphi 4. Es un libro que explica muy bien todos estos temas y otros. El ABC de Delphi. Lo vas a encontrar con facilidad en internet.

Saludos,