Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta usando query en delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=59368)

Yensis22 24-08-2008 23:20:12

Consulta usando query en delphi 7
 
estoy creado una aplicacion en la cual estoy teniendo problema con una consulta mi base de datos esta es acces y estoy los siguiente componente usando datamodule, database y query para relizar las consulta que es con los que estoy teniendo problema yo puedo ver y almacena los datos y tengo tos esto componten enlasado pero con las con sulta me esta tirando este erorror. Proyect facturacion.exe raised exception class EDBEningError with messanger "General SQL error. Process stopped. Use Step or Run to continue

y este es el codigo que tengo el cual se que esta bueno por que funciona bien en paradox pero nose si hay que cambiar algo para usalo en acess

codigo en DELPHI 7 lo que esta en azul en codigo es donde marca el error cundo se para la ejecucion

unit FConsuEquip;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls;
type
TFConstaEquipos = class(TForm)
Bevel2: TBevel;
Codequipo: TEdit;
Busqueda: TComboBox;
cBuscar: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
DBGrid1: TDBGrid;
procedure cBuscarClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FConstaEquipos: TFConstaEquipos;
implementation
uses login;
{$R *.dfm}
procedure TFConstaEquipos.cBuscarClick(Sender: TObject);
begin

if Busqueda.ITemIndex = 0 then Begin
if length(trim(Codequipo.Text)) = 0 then Begin
ShowMessage('Tiene que Especificar un valor para inicial la Consulta');
exit;
End;
Codequipo.Text := trim(Codequipo.Text);
ConexionDB.QEquipos.Active := False;
ConexionDB.QEquipos.SQL.Clear;
ConexionDB.QEquipos.SQL.Add('select * from equipos where upper(placa) like ''%' + UpperCase(Codequipo.Text) + '%'' ');
ConexionDB.QEquipos.Active := True;
if ConexionDB.QEquipos.Eof then ShowMessage('Lo siento no se encuentra ningun Registros');
End;
if Busqueda.ITemIndex = 1 then Begin
if length(trim(Codequipo.Text)) = 0 then Begin
ShowMessage('Tiene que Especificar un valor para inicial la Consulta');
exit;
End;
Codequipo.Text := trim(Codequipo.Text);
ConexionDB.QEquipos.Active := False;
ConexionDB.QEquipos.SQL.Clear;
ConexionDB.QEquipos.SQL.Add('select * from equipos where upper(modelo) like ''%' + UpperCase(Codequipo.Text) + '%'' ');
ConexionDB.QEquipos.Active := True;
if ConexionDB.QEquipos.Eof then ShowMessage('Lo siento no se encuentra ningun Registros');
End;
if Busqueda.ITemIndex = 2 then Begin
if length(trim(Codequipo.Text)) = 0 then Begin
ShowMessage('Tiene que Especificar un valor para inicial la Consulta');
exit;
End;
Codequipo.Text := trim(Codequipo.Text);
ConexionDB.QEquipos.Active := False;
ConexionDB.QEquipos.SQL.Clear;
ConexionDB.QEquipos.SQL.Add('select * from equipos where upper(marca) like ''%' + UpperCase(Codequipo.Text) + '%'' ');
ConexionDB.QEquipos.Active := True;
if ConexionDB.QEquipos.Eof then ShowMessage('Lo siento no se encuentra ningun Registros');
End;
if Busqueda.ITemIndex = 3 then Begin
if length(trim(Codequipo.Text)) = 0 then Begin
ShowMessage('Tiene que Especificar un valor para inicial la Consulta');
exit;
End;
Codequipo.Text := trim(Codequipo.Text);
ConexionDB.QEquipos.Active := False;
ConexionDB.QEquipos.SQL.Clear;
ConexionDB.QEquipos.SQL.Add('select * from equipos where upper(Año) like ''%' + UpperCase(Codequipo.Text) + '%'' ');
ConexionDB.QEquipos.Active := True;
if ConexionDB.QEquipos.Eof then ShowMessage('Lo siento no se encuentra ningun Registros');
End;
if Busqueda.ITemIndex = 4 then Begin
if length(trim(Codequipo.Text)) = 0 then Begin
ShowMessage('Tiene que Especificar un valor para inicial la Consulta');
exit;
End;
Codequipo.Text := trim(Codequipo.Text);
ConexionDB.QEquipos.Active := False;
ConexionDB.QEquipos.SQL.Clear;
ConexionDB.QEquipos.SQL.Add('select * from equipos where upper(ficha) like ''%' + UpperCase(Codequipo.Text) + '%'' ');
ConexionDB.QEquipos.Active := True;
if ConexionDB.QEquipos.Eof then ShowMessage('Lo siento no se encuentra ningun Registros');
End;
end;

procedure TFConstaEquipos.BitBtn1Click(Sender: TObject);
begin
RepConequipos.preview();
end;
procedure TFConstaEquipos.BitBtn2Click(Sender: TObject);
begin
RepConequipos.print();();
end;
end.

Yensis22 24-08-2008 23:29:20

este es el berdadero error que me esta dando
 
Disculpeme este es el verdadero error que me esta dando Proyect facturacion.exe raised exception class EDBEningError with messanger "General SQL error.(microsft)(contolador OBDC Microft Access) la Funcion UPPER no esta definidad en la expresion Process stopped. Use Step or Run to continue.

povar ayuden

Caral 24-08-2008 23:33:05

Hola
Me parece que esta diciendo que la funcion upper no esta definida.
Es probable que no funcione esta funcion con access.
1- quitaria esta funcion.
2- cambiaria de bde a ado, asi no usaria el odbc.
Saludos

Caro 25-08-2008 04:39:43

Hola Yensis22, como te dice el mensaje de error la función UPPER no esta definido en access, pero si tiene la funciones UCase y LCase equivalente al UPPER y LOWER. Ahora creo recordar que el operador del like en access no es el % sino el *. Y como te dice el amigo Caral sería mucho mejor que utilizaras ADO en vez de BDE.

Saluditos

Yensis22 25-08-2008 07:03:05

solucion
 
Gracias por su gran ayuda me funcion perfetamente con ucasa y no tube que cambiar los signo de % me esta funcionando de mil marabillas gracias y que diso les des vida y salud


La franja horaria es GMT +2. Ahora son las 06:43:23.

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