Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Gracias Lepe por tu consejo... estuve revisando lo de normalizacion de tablas y creo que puedo sacarle mayor provecho a mis tablas utlizando esas ideas.

Por otra parte... lo de cuanta infomacion estoi enviando un registro que se compone de 40 campos... no se si esto es mucho o no para trabajarlo cliente/servidor, porque si lo hago en forma local me funciona perfecto... casi instantaneo todo.

Les explico algo del programa... este sirve para generar ordenes de compra. Dentro de la base de datos tengo 2 tablas... COMPRAS y DETCOMPRAS.

En la primera se guardan datos como: numero de orden de compra (llave), numero cliente, tipo orden, monto orden, centro costos, etc.

En la segunda (DETCOMPRAS), todo el detalle de items asociados a la orden.

Problemas:
Cuando presiono el boton para generar una nueva orden de compra utilizo el siguiente codigo para saber cual es la ultima orden y generar la nueva orden.
La aplicacion maneja las orden para 2 empresas distintas

Código Delphi [-]
F_NVAOC.ibdataset1.close;
F_NVAOC.ibdataset1.selectsql.clear;
F_NVAOC.ibdataset1.selectsql.add('select noc, empresa from compras');
F_NVAOC.ibdataset1.selectsql.add('where empresa='+quotedstr(empresa));
F_NVAOC.ibdataset1.selectsql.add('order by noc desc');
F_NVAOC.ibdataset1.Open;
noc:=F_NVAOC.ibdataset1.fieldbyname('NOC').asinteger;
F_NVAOC.ibdataset1.append;
F_NVAOC.ibdataset1.fieldbyname('EMPRESA').asstring:=empresa;
F_NVAOC.ibdataset1.fieldbyname('NOC').asinteger:=noc+1;
F_NVAOC.ibdataset1.post;
form1.IBTransaction1.COMMIT;

Esto demora unos 20 segundos mas o menos... esta bien??

Existe otra forma de hacer esto mismo, pero que vaya mas rapido.

Bueno... muchas gracias.... again
Responder Con Cita
  #2  
Antiguo 12-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Pregunto nuevamente... ¿cual es la línea de código que demora los 20 segundos?

Eso nos dará una idea mas clara.

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 13-01-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
hola en hacer el siguiente codigo demora 20 segundos.

Código Delphi [-]
F_NVAOC.ibdataset1.close;F_NVAOC.ibdataset1.selectsql.clear;F_NVAOC.ibdataset1.selectsql.add('select noc, empresa from compras');F_NVAOC.ibdataset1.selectsql.add('where empresa='+quotedstr(empresa));F_NVAOC.ibdataset1.selectsql.add('order by noc desc');F_NVAOC.ibdataset1.Open;noc:=F_NVAOC.ibdataset1.fieldbyname('NOC').asinteger;F_NVAOC.ibdatase  t1.append;F_NVAOC.ibdataset1.fieldbyname('EMPRESA').asstring:=empresa;F_NVAOC.ibdataset1.fieldbyname  ('NOC').asinteger:=noc+1;F_NVAOC.ibdataset1.post;form1.IBTransaction1.COMMIT;

Esta bien eso... o demora mucho??
Responder Con Cita
  #4  
Antiguo 13-01-2008
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 23
Delfino Va por buen camino
Porque no haces uso del componente TIBSQL (o TMDOSQL) y generas por codigo la SQL q se debe mandar, en este caso van a ser dos,

Como ha dicho Caral al tratarse de una linea debe ir rapido..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #5  
Antiguo 13-01-2008
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Delfino Ver Mensaje
Porque no haces uso del componente TIBSQL (o TMDOSQL) y generas por codigo la SQL q se debe mandar, en este caso van a ser dos,

Como ha dicho Caral al tratarse de una linea debe ir rapido..

Desde luego, algo así debe tardar sólo milésimas de segundo.
Responder Con Cita
  #6  
Antiguo 13-01-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Gracias por sus sugerencias.... cambie la forma de ingresar datos en las tablas, cambiando el componente TIBDataset por TIBSQL... mejora bastante la velocidad.

Otra pregunta... Navegando en la web, me entere que los mejores componentes para estas situaciones son los "ClientDataSet"

Es eso verdad?
Cuales son esos? .. en que paleta de componentes los encuentro?

Muchas gracias... me han ayudado muchisimo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lentitud en la red. Carlos Arevalo Varios 2 09-07-2007 19:04:08
Lentitud conexión SQL amedina Conexión con bases de datos 8 04-08-2005 21:40:41
Lentitud en Cliente FireBird.... AGAG4 Firebird e Interbase 7 29-03-2005 16:56:51
Lentitud de FireBird 1.03 en Windows 2003 El_Perrito Firebird e Interbase 1 12-08-2004 09:21:25
Lentitud en la red Ignacio Conexión con bases de datos 2 26-08-2003 14:09:39


La franja horaria es GMT +2. Ahora son las 02:57:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi