![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Hola Caral
Que tal ....
se que eres un usuario entusiasta asi que te propongo algo .... haz una consulta que enlace 3 o mas tablas por medio de joins ...luego coloca ese conjunto de datos resultante en un Grid, y luego intenta modificar un valor cualquiera .... seguro te saldra un error que dice ... "informacion insuficiente para actualizar o insertar registro" (o algo asi palabras mas palabras menos) Si a ti te funciona y a mi no pues me cortare las venas o ire a meditar al tibet .. ![]() ![]() ![]() ![]() En todo caso creeme que el componente UpdateSql es util y te permite librarte de codigo que al fin y al cabo es lo que buscamos evitar (mas codigo del estrictamente necesario) en todo caso lo que planteo es como simular este componente (usando codigo claro) y donde poner dicho codigo para que permita la actualizacion "trasparente" en todo caso un query que va a solo una tabla su actualizacion es directa y sin problemas pero cuando es mas de una tabla pues claro que no sabe ni que tabla ni que columna actualizar, alli entra un codigo que lo haga (un update comun y corriente) en todo caso donde poner ese codigo ..... Gracias Caral por tus Respuestas ..... |
|
#2
|
|||
|
|||
|
En todo caso
Si dices que nunca lo has utilizado, (el componente UpdateSql) pero que tampoco lo has necesitado entonces como haces un update sobre un query como el anteriormente descrito .....
Gracias ..... Gracias .... Gracias ... Gracias .. Gracias . |
|
#3
|
||||
|
||||
|
Hola Kenobi
Cita:
![]() Muy seguramente me equivoco y me equivoco mucho, eso si, tratando de ayudar. Lo que si puedo decir, de lo poco que he aprendido es que en delphi se puede hacer casi todo y que hay muchas maneras de matar pulgas. Hacer una consulta con un inner Join a tres tablas, sin usar las claves principales y todavia querer actualizarla, no es muy inteligente , mas bien diria que es absurdo, recuerda, me puedo equivocar.Hacer una consulta a diez tablas, con lo que sea y luego hacer una actualizacion de los datos segun sea necesario me parece mas viable ademas de mas claro, insisto, no me hagas caso, seguro me equivoco tambien. ![]() En mi ventiunico programa en la parte de Facturacion, consulto 5 tablas y actualizo todo en un botoncito, como, muy sencillo, no se, seguro me salio de casualidad pero funciona. ![]() Si le tienes tanta mania a ADO por que insistes en usarlo, sigue con BDE, no? ![]() El Tibet en esta fecha esta muy frio, te recomiendo unas vacaciones en Jamaica, te sentaran mejor. ![]() Saludos |
|
#4
|
|||
|
|||
|
Jamaica no estaria mal....
Jajajaja .... sin duda mejor Jamaica que el tibet, sin embargo aclaro algo, no uso Bde uso unos que funcionan como estos de la empresa Corelab, la referencia a estos es porque se que la mayoria conoce mas Bde que los de Corelab, y porque no seguir con estos si son tan buenos, pues facil, son de pago y no son economicos, por otro lado Ado viene con delphi (cosa de no comprar mas) y debo aprender a usarlo porque no siempre voy a programar frente a mi pc(eventualmente tendre que hacer algo y uff se me quedaron los fuentes de Corelab, que desastre),
![]() ![]() ![]() ahora bien me llama la atencion lo de no inteligente de un query que al que se le puede actualizar una columna, si fuera asi no existiria este componente (updateSql) en corelab, bde, e incluso ibx, no crees...?porque si a ver vamos los lookupcombobox si que hacen lentas las aplicaciones y aun asi muchos los usan porque son super practicos y utiles (sin mencionar que no requieren de codigo especial, que complique las aplicaciones a futuro) si pudiera te enviaria la aplicacion para que veas que rapido va (aun con dicha actualizacion poco inteligente), pero no puedo porque pertenece a una organizacion y claro no puedo mostrar esos datos. Pero creeme que funciona bien, claro que tomo en cuenta tus comentario e investigare en consecuencia.... Gracias .... P.D. por cierto estoy seguro que soy mas novato que tu .... Jejejejej..... ![]() ![]() ![]() |
|
#5
|
|||
|
|||
|
Muchas Formas de Matar pulgas....
Tienes razon, en cuanto a la metodologias de exterminio de insectos...
por tal razon voy a colocar(segun se me ocurran) distintos metodos para hacer lo que quiero .... aca va el primero ... el problema fundamental es que el dbgrid enlazado al query no permite la modificacion por faltar informacion para update o insert ... bien pero que tal si en vez de llenar el Dbgrid con la consulta la lleno con un ClientDataSet previamente enlazado a la consulta en cuestion ... voila .... asi si que se deja y luego pues con un boton(o lo que sea) recorro los campos de ClientDataSet modificados haciendo el update ya antes mensionado sobre la tabla en cuestion .... ya lo hice y si funciona, pero .... ![]() mi humilde opinion, si bien es cierto que es poco codigo, si son muchos componentes mas(2 en total por cada consulta a actualizar) y esa no creo que sea la idea .... ![]() se se te ocurre otra idea ....dimela estoy abierto a comentarios ..... ![]() P.D : por cierto estoy haciendo la actualizacion del clientdataset hacia la tabla recorriendo dicho componente...
digamos que de forma secuencial ... pregunto no existe un metodo mas directo asi como asigno del query al clientdataset , pues en sentido contrario(del clientdataset al query ) Inquietudes mias nada mas ..... Gracias .... |
|
#6
|
||||
|
||||
|
Hola
Te voy a decir como lo hago, no debe ser la mejor manera, pero funciona. Uso un query para llenar la informacion (puede ser en un dbgrid u otro), este query hace la consulta de las tablas que necesite, no importa que capos consulte, claves etc, osea una consulta de lo que necesite en ese momento. Coloco otro query, normalmente lo llamo temporal. Este ultimo query es el que me actualiza las tablas, una por una. Puede ser engorroso, pero me sirve para darme cuenta de un vistazo, que actualizo y como. Entonces en conclusion dos querys uno consulta otro actualiza, es lo mismo que utilizar un query para consulta y un sqlupdate para actualizar, son los mismos dos componenes, eso si, es mas codigo, pero al fin y al cabo es una rato mas, nada mas. Saludos |
|
#7
|
|||
|
|||
|
Hola Caral
Claro que funciona tu metodo de hecho yo alguna que otra vez lo hice asi....
![]() Pero la raiz de lo que estoy planteando es la siguiente no es la instruccion de llenado del conjunto de datos, tampoco es la instruccion update(ni siquiera es como simular las variables Old al puro estilo de los triggers) ... el problema es que el conjunto de datos del query en cuestion se muestra en un grid y la idea es que el usuario por facilidad, llene una de las columnas de dicho grid .... claro al query ser de varias tablas el post no sabe a donde ir a cual tabla y cual columna, te pongo un ejemplo (se me acaba de ocurrir) de lo que quiero decir imaginate una aplicacion que sirva para registrar las notas obtenidas de un grupo de alumnos de una academia ... pues la consulta iria minimo a la tabla ALUMNOS,ASIGNATURAS,CURSO siendo la tabla curso la que tiene la clave principal para el alumno la asignatura la seccion y por supuesto la columna a actualizar la NOTA ... pues por facilidad al usuario le conviene ver un grid con el grupo de alumnos de la asignatura X de la seccion Y y asi vaciar estas notas, y como pues facil cuando ya la consulta esta cargada en el grid pues te vas a la columna nota escribes la nota, luego cursor abajo y nota siguiente y asi ..... vez... al final pues el Profesor asigno las notas correspondientes sin embargo cuando haces esto el sistema al intentar salir de la primera celda modificada te lanza este error informacion insuficiente para actualizar o agregar fila ..... con Corelab tu asignabas el comortamiento de modificacion por medio del contro UpdateSql que permitia instrucciones de modificacion insercion o borrado sobre la tabla a la que referencia el query principal cosa de actuar en consecuencia .... Gracias Caral ..... P.D : por cierto donde estan todos los demas, hace un tiempo tengo la impresion de que este foro se esta quedando sin gente, se fueron por otro lenguaje o que si es asi digan cual para ver si los seguimos .....![]() |
|
#8
|
|||
|
|||
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| MaxRecord de adoquery | Rako | Conexión con bases de datos | 2 | 09-07-2007 15:28:24 |
| ADOQuery | silviodp | Conexión con bases de datos | 15 | 13-12-2006 17:45:34 |
| concatenar en un adoquery | crack_neon | Conexión con bases de datos | 2 | 04-05-2006 21:57:24 |
| Duda con AdoQuery | Telemaco | Conexión con bases de datos | 1 | 26-04-2004 11:27:54 |
| AdoQuery | davidgaldo | Conexión con bases de datos | 1 | 05-02-2004 20:07:29 |
|