Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Query no me devuele datos (https://www.clubdelphi.com/foros/showthread.php?t=50821)

Petolansa 28-11-2007 23:22:10

Query no me devuele datos
 
Buenas gente, vuelvo a requerir de un poco de su atencion para ver si me pueden ayudar con lo siguiente.
Es una consulta simple, lo que quiero hacer es lo siguiente.
Tengo un form, el cual tiene dos radio button para elegir el tipo de factura y un edit para ingresar un numero, en este caso un nro de factura.
Tengo un query que lo que quiero que haga es que me devuelva los datos generales de la factura y me los meustre en un dgdrid.
Utilizo la siguiente consulta pero lo que hace una vez que ingrese los datos anteriores y le doy click al boton de buscar factura, me dice query1 numfac not found.

Código Delphi [-]
procedure TFrmanularfactura.BitBtn1Click(Sender: TObject);
begin
if rba.Checked=true then tipofactu:='a' else
if rbb.Checked=true then tipofactu:='b';

numfactu:=strtofloat(edit1.Text);

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('Select * from factura');
query1.SQL.Add('where factura.numfactura=:numfac AND Factura.tipofac=:tipofac');
query1.FieldByName('numfac').AsFloat:=strtofloat(edit1.Text);
QUERY1.FieldByName('tipofac').AsString:=tipofactu;
query1.Open;
end;
end.

Tengo un query un datasource y un dbgrid, todo conectados como corresponde.
El campo (numfactura) de la tabla factura es de tipo float y el tipo de factura (tipofac) es string, ya que es o A o B.
EN la propiedad params los defini como corresponde segun su tipo.

Porque me pude dar ese error.
Gracias

juanelo 29-11-2007 00:34:52

Que tal,
Probablemente tengas en tiempo de diseño cargados los campos en el query, haz una prueba, dale doble click a tu componente query y checate que este vacía.
Saludos

Petolansa 29-11-2007 00:38:27

Graias por la observacion juanelo, pero no, no estan cargados, esta vacio!
que mas podria ser?

ContraVeneno 29-11-2007 00:46:02

Es que son parámetros, no campos...
en lugar de:

Código Delphi [-]
query1.FieldByName('numfac').AsFloat:=strtofloat(edit1.Text);
QUERY1.FieldByName('tipofac').AsString:=tipofactu;


Debería ser:

Código Delphi [-]
query1.ParamByName('numfac').AsFloat:=strtofloat(edit1.Text);
QUERY1.ParamByName('tipofac').AsString:=tipofactu;

egostar 29-11-2007 00:48:36

Hola Petolansa

Esto sucede porque estas creando la consulta en tiempo de ejecución, te recomiendo que hagas lo siguiente

En la propiedad SQL de tu query pon tu consulta

Código SQL [-]
Select * from factura
where numfactura = :numfac and tipofac = :tipofac

Ejecuta tu programa y dinos que pasa.

Salud OS

juanelo 29-11-2007 00:49:13

Upps!! :eek: tiene toda la razon contraveneno ...

PD: ¿Era capciosa la pregunta? :D:rolleyes:

egostar 29-11-2007 00:50:17

Cita:

Empezado por juanelo (Mensaje 249188)
Upps!! :eek: tiene toda la razon contraveneno ...

PD: ¿Era capciosa la pregunta? :D:rolleyes:

Vaya, pues si, por ahí debemos comenzar, la costumbre de no leer. :)

Salud OS

Petolansa 29-11-2007 00:55:59

:D no, no era capciosa!, es que soy muy novato como pra no darme cuenta, igual estoy aprendiendo bastante, creo:rolleyes:. La ultima consulta porque se me cierra el form cuando le doy click al boton qe indique mas arriba en vez de activarme el dbgrid asociado y mostrarme el campo que quiero?

juanelo 29-11-2007 01:05:52

Cita:

Empezado por egostar (Mensaje 249190)
Vaya, pues si, por ahí debemos comenzar, la costumbre de no leer. :)

Salud OS

Egostar, ¿te refieres a que tienes una costumbre de no leer?, porque lo que toca a mi, trato de leer e investigar antes de preguntar, y por lo que respecta a este hilo, pues en verdad que fue error de apreciacion y no por no leer, te acepto la idea de leer rapido (y con el consecuente factor de error) pero NO la de no leer.
Saludos

egostar 29-11-2007 01:08:44

Cita:

Empezado por juanelo (Mensaje 249193)
Egostar, ¿te refieres a que tienes una costumbre de no leer?, porque lo que toca a mi, trato de leer e investigar antes de preguntar, y por lo que respecta a este hilo, pues en verdad que fue error de apreciacion y no por no leer, te acepto la idea de leer rapido (y con el consecuente factor de error) pero NO la de no leer.
Saludos

No no, por supuesto que no lo dije por ti, lo digo por mi, conteste con algo antes de leer bien el código. Solo tome tu mensaje para remarcar mi error. :)

Salud OS

juanelo 29-11-2007 01:20:15

Cita:

Empezado por egostar (Mensaje 249194)
No no, por supuesto que no lo dije por ti, lo digo por mi, conteste con algo antes de leer bien el código. Solo tome tu mensaje para remarcar mi error. :)

Salud OS

Egostar, sabes, te pido una disculpa, lo que pasa es que he tenido un día de los mil y un diablos y ando encabronado por todo, lo mejor es que me vaya a descansar y entrar mañana con la cabeza mas fría.
Saludos y nuevamente una disculpa sensei Egostar ... :o

Petolansa 29-11-2007 01:24:07

Gente les agradezco a ambos, de veras.

Saludos.

egostar 29-11-2007 01:25:45

Cita:

Empezado por juanelo (Mensaje 249195)
Egostar, sabes, te pido una disculpa, lo que pasa es que he tenido un día de los mil y un diablos y ando encabronado por todo, lo mejor es que me vaya a descansar y entrar mañana con la cabeza mas fría.
Saludos y nuevamente una disculpa sensei Egostar ... :o

No pasa nada amigo juanelo, en todo caso las disculpas van en sentido contrario, no debí hacer mención de tu comentario porque leyendo efectivamente parece que te estoy criticando.

Que mañana tengas un mejor día.

Salud OS

Caral 29-11-2007 02:01:07

Hola
Solo por comentar.
No entiendo nada.
Saludos

ContraVeneno 29-11-2007 16:19:15

Cita:

Empezado por Petolansa (Mensaje 249191)
porque se me cierra el form cuando le doy click al boton qe indique mas arriba en vez de activarme el dbgrid asociado y mostrarme el campo que quiero?

No se, el código que muestra no debería cerrar nada... si se cierra el formulario ya tendrías que revisar otras cosas: la conexión, otra parte del código, el diseño del formulario, no se, ya tendrías que ser tú el que investigue el porque.

Lepe 29-11-2007 17:15:30

Petolansa: ¿Realmente es necesario que el número de factura sea un Float?

Lo pregunto porque puedes querer guardar el dato "25.33" y realmente guardarse en la base de datos como "25.33333", al buscar una factura puede que no la encuentre por el tema de decimales.

No sé cual es tu Base de datos, pero yo no apostaría por un Float, cuando menos un Decimal o Numeric

Saludos


La franja horaria es GMT +2. Ahora son las 03:30:46.

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