Delphi - Error al refrescar un ADOQuery

 
Vista:

Error al refrescar un ADOQuery

Publicado por Edgar Ramirez (5 intervenciones) el 28/09/2006 02:31:28
Hola.

Mi situación es la siguiente:
Tengo un ADOQuery en el que el SQL es: SELECT MAX(folio) AS ultimo FROM clientes; el problema es que algunas veces no me muestra el ultimo folio despues de una insercion, ya probe poner ADOQuery.Refresh despues de abrir el ADOQuery y me marca el siguiente error al llamar al refresh: Información de la tabla base insuficiente para realizar la operación de Update o Refresh.

Agradezco de antemano sus respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error al refrescar un ADOQuery

Publicado por LSamboy (75 intervenciones) el 28/09/2006 06:10:03
por favor escribe la forma en la cual tu tienes la consulta para poder examinarla y determinar que le falta o que tiene de mas.

att:LSamboy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al refrescar un ADOQuery

Publicado por Dr Juzam (821 intervenciones) el 28/09/2006 12:44:42
¿Has probado con cerar y abrir el query en lugar de hacer un refresh?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al refrescar un ADOQuery

Publicado por Edgar Ramirez (5 intervenciones) el 28/09/2006 19:43:09
Pues la consulta es sencilla, la puse en el mesaje es:
SELECT MAX (folio) AS ultimo FROM clientes;

la consulta esta directamente en la propiedad SQL del componente ADOQuery en modo de diseño, asi que solo le doy un Open al ADOQuery y luego hago el refresh, despues asigno el resultado de la consulta a una variable y la incremento y le doy un Close al ADOQuery.
La base de datos que estoy utilizando es access
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al refrescar un ADOQuery

Publicado por LSamboy (75 intervenciones) el 29/09/2006 07:03:05
lo primero que te recomiendo es que no uses APPEND y solo usa insert, ya que el append agrega un registro debajo de donde este el cursor, intenta eso y luego hablamos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al refrescar un ADOQuery

Publicado por Edgar Ramirez (5 intervenciones) el 28/09/2006 20:02:24
Cuando inserto datos lo realizo mediante un ADOTable, lo hago de la siguiente manera:

altasclien.ADOTable1.Active:=true;
altasclien.ADOTable1.Append;
altasclien.ADOTable1.FieldByName('folio').AsString:=edit1.Text;
altasclien.ADOTable1.FieldByName('nombre').AsString:=edit2.text;
.....inserto los otros campos de la tabla
.
.
altasclien.ADOTable1.Post;
showmessage('Los datos han sido dados de Alta...');
altasclien.ADOTable1.Active:=false;

Y tengo un boton para insertar un nuevo registro en el cual al hacer click en él obtengo el ultimo numero de folio, lo incremento y lo muestro en un Edit, para ello es que ocupo el ADOQuery que menciono en los mensajes anteriores.

Sin utilizar el Refresh del ADOQuery solo abriendolo y cerrandolo si mostraba el ultimo valor del folio pero solo las primeras ocaciones , despues de la 3a. o 4a. insercion ya no lo obtenia y me mostraba el folio anterior y no el nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al refrescar un ADOQuery

Publicado por Edgar Ramirez (5 intervenciones) el 11/10/2006 03:05:09
¡¡¡¡Finalmente resolvi mi problema!!!!

Cambie de ADOQuery por un ADODataSet y me siguia sin mostrar el ultimo folio del cliente, lo que pasaba es que no utilizaba el ADOConnection sino conectaba directamente el ADOQuery o el ADODataset con la BD, entonces agregue un ADOConnection y mediante este conectaba el ADODataset (con el que obtenia el ultimo folio) y el ADOTable(con el que realizaba la insercion de los datos) a la Base de datos y asi ya no tuve problemas.

Gracias por su ayuda LSamboy y Dr Juzam
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar