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. |
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 |
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 |
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 |
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