FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error al hacer varias busquedas con adoquery
Hola el problema que tengo es de que estoy ejecutando una busqueda sobre una tabla de mi base de datos con un adoquery y mysql, la base de datos la tengo en mi pc, el problema es de que a la primera vez que ejecuto la consulta la hace correctamente pero despues de ejecutar varias consultas delphi me manda un error, donde me muestra una ventana de CPU donde me aparece una especie de codigo ensamblador y de tiene mi programa.
Este es el codigo q utilizo en el onchange de un edit, ya busque en los hilos que vienen en el foro y en ninguno e encontrado la solucion para mi problema.
Última edición por vtdeleon fecha: 30-03-2007 a las 20:46:20. |
#2
|
||||
|
||||
Saludos
Trata con esta modificación en esta linea:
Usa las Etiquetas para que el codigo aparezca resaltado.
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
|||
|
|||
Hola mira de la forma en que tenia el codigo la forma anterior no me marcaba error pero al momento de buscar no encontraba nada, entonces decidi cambiar en la sentencia igual por el like, ahy si encuentra pero al hacer un numero determinado de busquedas me vuelve a presentar el mismo error, me vuelve a presentar la fea pantalla con el titulo de CPU.
qbuscar.Close; qbuscar.SQL.Clear; qbuscar.SQL.Add('select * from CLIENTES where NOMBRE LIKE:n'); qbuscar.Parameters.ParamByName('n').DataType:=ftstring; qbuscar.Parameters.ParamByName('n').Value:=('%'+trim(edtbuscar.Text)+'%'); qbuscar.Open; |
#4
|
||||
|
||||
Que error te tira?
Quitale los parentesis que te puse en rojo. qbuscar.Parameters.ParamByName('n').Value:=('%'+trim(edtbuscar.Text)+'%'); Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#5
|
|||
|
|||
Hola que ondas oye mira ya le quite los parentesis que me dijiste pero me sigue saliendo ese error, lo que hace ahora es que por ejemplo encuentra el registro que busco pero al ejecutar la busqueda pa ver otros archivos me vuelve a salir la ventana de CPU, es la pantalla donde viene el codigo ensamblador, el titulo de la pantalla es CPU, no me falta de configurarle algo al adoquery o al adoconecction que quiza sea lo que me provoke no poder hacer las busquedas que necesito?
|
#6
|
||||
|
||||
Ok, creo entender a lo que te refieres con "Ventana de CPU". Ejecuta tu programa fuera de Delphi. Y escribe aqui el error que te dá el sistema.
Sin conocer ese error estamos fritos. Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#7
|
|||
|
|||
Oye con la novedad de que el error corriendolo desde el ejecutable fuera de delphi funciona a la perfeccion pero corriendolo con F9 malas ahy es donde truena, entonces ya mi duda seria si no me dara problemas mas adelante ese error que me salia, por que ahorita estoy intentandolo hacer que truene y de plano no falla fuera de delphi. Muchas gracias por tu ayuda y aqui paso el codigo con el que me esta funcionando por si alguien mas le sirve;
qbuscar.Close; qbuscar.SQL.Clear; qbuscar.SQL.Add('select * from CLIENTES where NOMBRE LIKE:n'); qbuscar.Parameters.ParamByName('n').DataType:=ftstring; qbuscar.Parameters.ParamByName('n').Value:='%'+trim(edtbuscar.Text)+'%'; qbuscar.Open; |
#8
|
|||
|
|||
hola ya volvi pues con la mala noticia de que estaba ejecutando mi sistema fuera de delphi i por fin me salio el error que pense que se habia ido para no volver mira el errror que me sale es Runtime error Program ABC.Exe R6025 pure virtual function call.
|
#9
|
|||
|
|||
Mira le estuve moviendo a dale y dale al sistema hasta que lo hice llorar, lo que hice fue con el ejecutable lo corri entonces me salio el error antes mencionando de runtime error le puse aceptar y despues le volvi a mover al edit y me salio una ventanita error inesperado y despues de esa enseguida me sale una que dice que un objeto estaba abierto y de ahy ya no me puedo mover.
|
#10
|
||||
|
||||
Me parece que ese error que te sale no es causado (directamente) por el código que has puesto. Debe haber algun evento, procedimiento o función que está provocando esa llamada.
Si es posible, muestranos los procedimientos o funciones involucrados de esa unidad. Y usa las etiquetas para los códigos. Edita tu primer mensaje, en donde he puesto las etiquetas para que veas como se utilizan. Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#11
|
|||
|
|||
hola que tal oye quieres que te pase la unidad de codigo donde me manda el error?
Código:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB; type TForm1 = class(TForm) B: TButton; ADOConnection1: TADOConnection; qbuscar: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; edtbuscar: TEdit; ADOConnection2: TADOConnection; DataSource2: TDataSource; DBGrid2: TDBGrid; wbuscar: TADOQuery; contrato: TEdit; pedido: TEdit; Button1: TButton; procedure edtbuscarChange(Sender: TObject); procedure contratoChange(Sender: TObject); procedure pedidoChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.contratoChange(Sender: TObject); begin wbuscar.Close; wbuscar.SQL.Clear; wbuscar.SQL.Add('select * from PEDIDOS where (PEDIDO LIKE:n)'); wbuscar.Parameters.ParamByName('n').DataType:=ftstring; wbuscar.Parameters.ParamByName('n').Value:='%'+trim(contrato.Text)+'%'; wbuscar.Open; end; procedure TForm1.pedidoChange(Sender: TObject); begin wbuscar.Close; wbuscar.SQL.Clear; wbuscar.SQL.Add('select * from CLIENTES,PEDIDOS where (PEDIDO LIKE:n) and (PEDIDOS.CLIENTE = CLIENTES.CLIENTE)'); wbuscar.Parameters.ParamByName('n').DataType:=ftstring; wbuscar.Parameters.ParamByName('n').Value:='%'+trim(pedido.Text)+'%'; wbuscar.Open; end; end. |
#12
|
|||
|
|||
No necesitas la opcion de DataType = ftString, quitala y prueba.
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#13
|
||||
|
||||
Hola cucuy
Yo intentaria esto primero y luego por parametros: Creo que se ve mas facil, por lo menos para empezar Saludos |
#14
|
||||
|
||||
Hola
La verdad yo haria un simple filtro asi: Pensando que pedidos es numerico: Si pedidos es texto: Teniendo en cuenta que wbuscar se encuentra abierto. Saludos |
#15
|
|||
|
|||
Hola Caral Como estas mira eso de quitarle la instruccion de datatype lo tenia antes asi y me mandaba errror mas rapido, y entonces me puse a hacer tu segunda recomendacion que es la de poner un simple filtro en el onchange en lugar de estar haciendo un select, el problema fue que puse el filtro que me dijiste ocacion lo hace bien pero a la segunda me manda un error que dice: ABC. exe raised exception class EOle Exception with message 'Argumentos incorrectos', fuera del intervalo permitido o en conflicto con otro. La configuracion que tengo de los componentes que utilizo en esta operacion es la que viene de foul, solo ago la conexion del adoconection con la base de datosy ligo el adoquery a el adoconection osea que no le e movido a nada de los tipos de cursores y esas cosas, por que lo intente y el resultado era el mismo o el peor por que que en veces no me mostraba informacion.
Código:
procedure TForm1.contratoChange(Sender: TObject); var filtro:string; begin wbuscar.Filtered := False; Filtro := 'PEDIDO Like '''+contrato.Text+ '*'''; wbuscar.Filter := Filtro; wbuscar.Filtered := True |
#16
|
||||
|
||||
Nombranos los componetnes que estas utilizando en ese formulario.
Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#17
|
|||
|
|||
mira estoy usando un adoquery (qbuscar), un adoconection (adoconection1) un edit (edtbuscar) un dbgrid (dbgrid1) y un datasource (datasource1) esos componentes utilizo todos con sus propiedades de foul solo ligando lo necesario para tener acceso a la base de datos y para mostrar en el dbgrid la informacion
|
#18
|
||||
|
||||
Aun no veo el error . Que base de datos usas?
Por último, hagamos una prueba. Crea un nuevo proyecto o un nuevo formulario e intenta hacer lo mismo, coloca todos los componentes y el codigo (nada de Copy-Paste).
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#19
|
|||
|
|||
ok dejame ago eso utilizo base de datos mysql es lo unico que me esta atorando por que puedo hacer altas, bajas y cambios sin ninguno problema solo las busquedas se me pusieron necias jajajaja, gracias ahy te cuento como me fue, oye no podra ser problema del MSDART.DLL ?
|
#20
|
||||
|
||||
En MySql soy un proble diablo. No te sabría decir si el problema viene de ahí. Si aun te persiste el problema, podrías cambiar los componentes Ado a Zeus o MyDac que son mas nativos para MySQL, siempre que te sea posible y no conlleve a mayores daños y perdida de tiempo.
De todos modo, realiza la prueba y nos cuentas. Suerte Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al borrar con Adoquery | hernitz | SQL | 6 | 07-03-2007 22:55:13 |
Problemas al hacer SELECT con ADOQuery | hunabku | Conexión con bases de datos | 1 | 18-05-2005 01:08:28 |
Error en ADOQuery ¡¡URGENTE!! | Victor Pimentel | Conexión con bases de datos | 2 | 25-10-2004 08:34:35 |
Error al cerrar un ADOQuery | Alexander | Conexión con bases de datos | 2 | 02-06-2004 13:42:18 |
|