![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Tuve un problema similar con la optimización, debes acceder directamente a los campos y no usar FieldByName("TuCampo"). Al usar de esta manera:
Internamente Delphi convierte el valor a currency y si son datos masivos se nota la diferencia. Debes definir en tiempo de diseño los campos del dataset y usar de esta forma: Aplique esta forma en mi caso y mejoró la velocidad de ejecución. Saludos. |
|
#2
|
|||
|
|||
|
Cita:
[dcc32 Error] UnitTasa.pas(76): E2003 Undeclared identifier: 'sqlproductosPRECIO1' |
|
#3
|
|||
|
|||
|
Cita:
1.- En tu primer post pusiste esta consulta: Ese código debes especificar que datos vas a necesitar, entiendo que quieres actualizar todos los productos, pero debes especificar que campos vas a necesitar, asi optimizaras mejor el rendimiento. Quedaría así según tu codigo:
2.- He de suponer que usas módulos de datos para colocar lo componentes de base de datos. Ahora suponiendo que usas Firebird, debes colocar un ibquery definir la consulta sql: Luego das botón derecho en el ibquery y click en "Fields Editor" y sale una nueva ventana y haces botón derecho haces click en "Add all fields". Con esto ya has creado todos los campos y el mismo proceso para hacer con el clientdetaset para definir sus campos, s´plo que ya no debes poner ninguna sentencia sql sólo debes enlazarlo con un datsetprovider como puente entre ibquery y el clientdataset. Si tienes dudas sobre esto hay una pagina en internet que se denomina "Delphi al limite" tiene bastantes ejemplos sobre clientdataset, ibquery, datasetprovider. Una ver definido los campos anteriores recien puedes poner este código: Donde "datos" he de suponer el modulos de datos, "sqlproductos" es el dataset y "PRECIO1" es el campo. Saludos. |
|
#4
|
|||
|
|||
|
Cita:
|
|
#5
|
|||
|
|||
|
Cita:
De repente al definir los campos, delphi les puso otro nombre o con alguna diferencia, fijate en el nombre que le creo Delphi porque el mensaje es claro "identificado no declarado" y ese mensaje es claro y sólo se me ocurre: 1.- O no definiste los campos o 2.- Delphi le puso un nombre un poco diferente ejemplo: el nombre esperado es "sqlproductosPRECIO1" y delphi le puso "sqlTproductosPRECIO1". Ahora con respecto a hacerlo en base de datos si puedes investigar un poco acerca de procedimientos almacenados en firebird, con eso encontraras solución para realizarlo en base de datos, en internet hay bastante documentación al respecto de procedimientos almacenados. Saludos. |
|
#6
|
|||
|
|||
|
Aca hay un ejemplo de procedimiento almacenado en firebird:
http://www.clubdelphi.com/~marcsc/fo...ad.php?t=11090 Última edición por marco3k fecha: 22-10-2020 a las 16:24:07. |
|
#7
|
|||
|
|||
|
Cita:
|
|
#8
|
|||
|
|||
|
Estimado adjunto sugerencias para tu proceso de actualización:
Saludos cordiales |
|
#9
|
|||
|
|||
|
Cita:
me sigue saliendo el mismo error Última edición por webmasterplc fecha: 25-10-2020 a las 13:39:51. |
|
#10
|
|||
|
|||
|
Cita:
|
|
#11
|
|||
|
|||
|
Que bueno que ya te funciono y ¿Se pudo optimizar a como estaba anteriormente?
Saludos. |
|
#12
|
|||
|
|||
|
Ahora cómo te dijeron Casimiro y Kuan-Yiu hacerlo en la base de datos sería aun más rápido. Pero ya depende de ti como lo quieres hacer.
|
|
#13
|
|||
|
|||
|
Me gustaria hacerlo ennla base de datos pero no tengo ni idea
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problema con actualizacion de campo calculado | rloayzal | Conexión con bases de datos | 9 | 18-12-2008 18:10:36 |
| Actualizacion de un campo desde un trigger | fedat | Firebird e Interbase | 2 | 14-11-2007 01:13:00 |
| Actualización de campo Boolean | PINO72 | Firebird e Interbase | 1 | 09-02-2005 21:28:21 |
| Actualización de campo BLOB. | mlara | Firebird e Interbase | 0 | 13-03-2004 18:10:35 |
|