Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2003
m@r m@r is offline
Miembro
 
Registrado: oct 2003
Posts: 16
Poder: 0
m@r Va por buen camino
Question ¿Edicion de datos?

Hola a todos:
Tengo el siguiente problema. Tengo un Query con el cual realizo
consultas y ademas inserto, modifico, etc.. Para hacer lo anterior
uso la propiedad de RequestLive := True

Ademas tengo un grid que muestra los resultados de las
consultas y DBEdit's para hacer las modificaciones necesarias a
esos datos. (ambos en la misma forma)

Al dar un click en el titulo del grid ordeno los datos mediante
una sentencia SQL (ORDER BY). Pero despues de ordenar por
ciertos campos ya no puedo modificar los datos directamente
en los DBEdit's, no me marca ningun error simplemente la tabla
ya no esta en modo de edicion.

Algún consejo para solucionar mi problema?
Uso Delphi5 y archivos Dbase.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 15-10-2003
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 22
sanxpue Va por buen camino
En el evento OnClickTitle es donde das click para ordenarlos entonces antes de que lo mandes a ordernar pones

Código:
Var
  Pass : Boolean;
Begin
  Pass := False;
  If tabla.State = dsEdit Then
    Pass := True;
  .
  .
  Aqui haces tu orden
  .
  If Pass Then
     Tabla.edit;
  .
  .
  .
End;
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #3  
Antiguo 16-10-2003
m@r m@r is offline
Miembro
 
Registrado: oct 2003
Posts: 16
Poder: 0
m@r Va por buen camino
Question

Gracias sanxpue ya lo habia intentado y se produce un error en la linea del edit 'query: Cannot modify a read-only dataset'

Lei dentro del foro y da la ayuda de delphi que todas las consultas multitabla regresan resultados de solo lectura, pero yo hago una consulta que involucra una sola tabla y aun así regresa el resultado de solo lectura.
Puedo usar la propiedad CacheUpdates := True y el UpdateSQL y se soluciona mi problema, pero entonces muchos usuarios pueden editar el mismo registro y surge el conflicto de modificaciones.

Alguna otra sugerencia o ayuda para solucionar mi problema sin perder el bloqueo de registros?

Gracias
Responder Con Cita
  #4  
Antiguo 16-10-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Creo (no lo aseguro al 100%) que una consulta con Order By siempre es de sólo lectura o no ser que utilices el UpdateSQL como mecionas.
Responder Con Cita
  #5  
Antiguo 17-10-2003
m@r m@r is offline
Miembro
 
Registrado: oct 2003
Posts: 16
Poder: 0
m@r Va por buen camino
Question

Gracias..

Lo extraño es que yo realizo ORDER BY por 6 campos distintos y
solo en algunos regresa resultados de solo lectura y en otros
despues de ordenar puedo editar sin ningun problema.

Seguire investigando gracias por su tiempo
Responder Con Cita
  #6  
Antiguo 17-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por m@r
Lo extraño es que yo realizo ORDER BY por 6 campos distintos y solo en algunos regresa resultados de solo lectura y en otros despues de ordenar puedo editar sin ningun problema.
Quizá esto te ahorre un poco de investigación. Tomado de la ayuda de Delphi (bde32.hlp):

Updateable queries

Single-table queries

Queries that retrieve data from a single table are updatable provided that:
  • There is no DISTINCT key word in the SELECT.
  • Everything in the SELECT clause is a simple column reference or a calculated column, no aggregation is allowed. Calculated columns remain read-only.
  • The table referenced in the FROM clause is an updatable base table.
  • There is no GROUP BY or HAVING clause.
  • There are no subqueries in the statement.
  • There is no ORDER BY clause.

The read-only effect of an ORDER BY clause is negated and the query updatable if the ORDER BY clause uses a single column and there is a dBASE single-column primary or secondary index based on that same field. dBASE compound (expression) indexes will not negate the read-only effect of an ORDER BY clause. A Paradox single- or multi-field primary index will make the query updatable if the ORDER BY uses exactly the same columns (in the same order) as the index. Paradox secondary indexes will not negate the read-only effect of an ORDER BY clause.

Multi-table queries

All queries that join two or more tables will produce a read-only result set.

Calculated fields

For updateable queries with calculated fields, an additional field property identifies a result field as both read-only and calculated. Every call to the BDE function DbiPutField causes recalculation of any dependent fields.
// Saludos
Responder Con Cita
  #7  
Antiguo 17-10-2003
m@r m@r is offline
Miembro
 
Registrado: oct 2003
Posts: 16
Poder: 0
m@r Va por buen camino
Thumbs up

Gracias Roman.

Me sirvio de maravilla. Problema resuelto.
me ahorraste muchisimo tiempo.

Gracias por tú ayuda y tú tiempo.

Saludos!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:05:16.


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
Copyright 1996-2007 Club Delphi