Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   ClientDataSet: ver instruciones Insert, Update, Delete (https://www.clubdelphi.com/foros/showthread.php?t=85271)

StartKill 23-02-2014 05:30:07

ClientDataSet: ver instruciones Insert, Update, Delete
 
Buenas Foro.

Estoy trabajando con:
- Delphi XE
- SQL Server 2008
- DbGo/ADO
- ClientDataSet

Se sabe que cuando aplico asi: ClientDataSet1.ApplyUpdates(0);
Actualizo la tabla en la base de datos.

Mi pregunta es: hay forma de saber cuales son las intruciones-SQL (Insert, update, delete) que serán enviadas al servidor SQL Server 2008.


Ss.

Your friend

Startkill
Lima-Perú

StartKill 18-11-2015 06:53:43

Hola foro

Ha pasado mucho tiempo de esta pregunta y nuevamente tengo la necesidad de resolverla.
Replanteo la pregunta.

- Trabajo con Delphi XE
- SQLSever 2008

Uso un ClientDataSet que es alimentado por un AdoQuery.
La setencia Select en el componente AdoQuery es:

Código SQL [-]
select * from padron where nro_key = :nro_key

Luego de asignar el valor al parametro :nro_key aplico el Applyupate al ClientDataSet y, espiando con el profile observo que la sentencia es enviada al servidor asi:

Código SQL [-]
exec sp_executesql N'
select * from  padron 
where nro_key = @P1  ',N'@P1 nvarchar(8)',N'00148894'

Como puedo obtener esta misma sentencia antes de ser enviada al servidor sqlsever?

A la espera de sus respuestas.

Your friend

Startkill
Lima-Perú

Al González 18-11-2015 07:22:29

Con el depurador de Delphi puedes seguir la pista de lo que sucede al llamar al método ApplyUpdates.

Una pregunta, ¿es algo que requieres para que tu aplicación lo obtenga en tiempo de ejecución? ¿Cuál es el objetivo final?

Saludos.

Al González.

P.D. Extraño la época en que estas cosas me hacían irme a dormir tres horas más tarde y encontraba una solución "maravillosa" al problema. Ayudaba a otros y de paso aprendía muchísimo. Ya alguna vez examiné lo mismo que pides. Sé que si abro Delphi en esta vieja laptop podré volver a llegar hasta el punto exacto que lo revela todo, pero, ahora con los achaques de la edad y que trabajo bajo un horario... Dame ánimo para investigártelo mañana. Que tengan buena noche acá y buen día para los que están en desultramar. Los quiero a todos. :)

Casimiro Notevi 18-11-2015 10:16:07

Cita:

Empezado por Al González (Mensaje 499520)
P.D. Extraño la época en que estas cosas me hacían irme a dormir tres horas más tarde y encontraba una solución "maravillosa" al problema. Ayudaba a otros y de paso aprendía muchísimo. Ya alguna vez examiné lo mismo que pides. Sé que si abro Delphi en esta vieja laptop podré volver a llegar hasta el punto exacto que lo revela todo, pero, ahora con los achaques de la edad y que trabajo bajo un horario... Dame ánimo para investigártelo mañana. Que tengan buena noche acá y buen día para los que están en desultramar. Los quiero a todos. :)

Nosotros también te queremos :D:)
Los achaques de la edad se solucionan no mirándose al espejo :D

StartKill 18-11-2015 15:26:45

Saludos Al Gonzáles y Casimiro.

Hey compañeros, nos nos metamos con la edad, ella crece como las versiones// pero sin opcion a regresar a una menor para sentirnos mejor :)

Me da gusto leerlos // mi mente remonta cuando yo deseaba conquistar el mundo con la ayuda de todo el foro y, es alli donde muchos de usd. salian con sus escudos y espadas para apoyarnos....


Cita:

Por StartKill
Uso un ClientDataSet que es alimentado por un AdoQuery.
La sentencia Select en el componente AdoQuery es:
Código SQL [-]
select * from padron where nro_key = :nro_key
Luego de asignar el valor al parametro :nro_key aplico el Applyupate al ClientDataSet y, espiando con el profile observo que la sentencia es enviada al servidor asi:
Código SQL [-]
exec sp_executesql N'
select * from  padron 
where nro_key = @P1  ',N'@P1 nvarchar(8)',N'00148894'
Como puedo obtener esta misma sentencia antes de ser enviada al servidor sqlsever?

Por Al Gonzáles
Cita:

Con el depurador de Delphi puedes seguir la pista de lo que sucede al llamar al método ApplyUpdates.
Una pregunta, ¿es algo que requieres para que tu aplicación lo obtenga en tiempo de ejecución? ¿Cuál es el objetivo final?

(gracias por responder) Al Gonzáles, sí, es en tiempo de ejecución, en algunas ocaciones deseo guardar algunas instrucciones (select, update, insert) en un archivo de texto para que sea procesado por otro aplicativo, este solo desea tener el archivo texto con las instrucciones a procesar.

De la misma forma este mismo archivo de texto puede ser procesado por el EMS o por SQL Management.

Los aprecia, your friend

StartKill
Lima-Perú

fjcg02 18-11-2015 17:24:33

Hola,
he leido el tema, y creo recordar, aunque no lo encuentro y no tengo tiempo de hacerlo , que en la web de Salvador Jover, hacía o derivaba un componente que extraía todas las sentencias sql que se ejecutaban en un clientdataset. Lo explicaba paso a paso de forma muy didáctica.
Fue hace tiempo, por lo que primero, no sé si es exactamente tu caso, y no sé a qué versión de delphi pertenecía el ejercicio.

Otra alternativa es poner una traza en la bbdd y ver qué pasa, aunque igaul no es tu problemática.

Un saludo y suerte

fjcg02 18-11-2015 22:12:23

Hola de nuevo,

este es el artículo al que me refería.

http://delphibasico.com/2009/03/26/c...sesenta-anexo/

Creo que te merece la pena echarle un vistazo.

Un saludo

Al González 18-11-2015 23:25:09

Cita:

Empezado por fjcg02 (Mensaje 499567)
este es el artículo al que me refería.

http://delphibasico.com/2009/03/26/c...sesenta-anexo/

¡Excelente! :)

Aunque me apena reconocer que no recordaba aquel estupendo artículo de Salvador. Incluso ahí anduvo de metiche un tal Al González. ¡Jo! :o

Ya tienes material de estudio, StartKill. ^\||/

Al González 18-11-2015 23:28:06

P.D.

¿Ven por qué es importante enseñarle Delphi a los jóvenes? ¿Quién se va a encargar de recordarnos los buenos artículos de la Web cuando ni mi buen amigo vasco se acuerde de ellos? ;) :p

Un abrazo.

StartKill 19-11-2015 03:47:46

Hola Al Gonzáles y fjcg02 "El orden del saludo es alfabético no hay preferencias ;) "

Lamentablemente en el trabajo no pude abrir el foro para poder leer sus respuestas, todo el dia escuchando requimientos de los usuarios, intercambiando ideas con mis colegas mientras almorzamos, visitando algunas oficinas para acelerar mi pago :)...

Ya en camino a casa estaba con angustia por saber si hay luz para resolver de forma precisa mi problema, que me habran constestado// me preguntaba, Al Gonzáles habrá encendido su vieja laptop y encontrar mi respuesta?

Sentado en mi escritorio frente a mi PC, sonriendo por la solucion encontrada por fjcg02.. no puedo quejarme de uds... se los agradezco, han acortado mi tiempo de respuesta, un abrazo.

Cita:

iniciado por: fjcg02, este es el artículo al que me refería.
http://delphibasico.com/2009/03/26/c...sesenta-anexo/
Your friend

Startkill
Lima-Perú

fjcg02 19-11-2015 08:45:45

A quien debemos dar las gracias es a Salvador.

Fundamentalmente por dos motivos:
a.- Por hacer esos experimentos de laboratorio.
b.- por explicarlos de forma tan didáctica.

Muchos tenemos ideas en la cabeza, pero por falta de tiempo o conocimientos, no podemos desarrollarlos de una forma tan detallada, y además compartirlo con el resto de la gente.

Su labor no tiene precio.

Recomiendo a todos ( principiantes y no tan principiantes ) la lectura de la serie de artículos del propio Salvador "Un día con los mayores". Basándose en un curso de Ian Martins ( autor de los libros "La cara Oculta de ..." ), explica paso a paso la herencia de formularios, etc. demostrando cómo se puede ahorrar código y trabajo a tutiplén.

Por otro lado, lo que más me gusta de estos foros y de los que participan en ellos es la "memoria colectiva" llevada a su máximo extremo. Pones una pregunta sobre algo que has leido, compartido, escuchado, ... y siempre hay alguien que te recuerda dónde, cómo y cuando , si no te da más información y además te ilustra con un ejemplo de una calidad exquisita.

Un abrazo a todos


La franja horaria es GMT +2. Ahora son las 17:48:54.

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