Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #21  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
El problema es que no se actualizan las tablas y no se porque !!
Reply With Quote
  #22  
Old 02/05/2012
MartinS MartinS is offline
Miembro
NULL
 
Join Date: Nov 2011
Location: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Quote:
Originally Posted by pelikno View Post
Porque usas querys?
Simplemente porque no es recomendable ni necesario en cualquier sistema que se muestren todos los registros. Es decir, cuando un usuario busca algo en particular sabe lo que necesita ver y nosotros debemos darle mas o menos la estructura de busqueda para que no se nos dispare la memoria del programa. Imaginate si la tabla tiene un millon de registros por ejemplo. Entonces solo limito lo que quiero mostrar.
Por otro lado las consultas se ejecutan en el servidor y enviar todos (y digo todos) los datos por red puede ser demasiado engorroso y saturar todo facilmente. Por ello mis consultas son del tipo

Código Delphi [-]
   IbQuery1.close;
   IbQuery1.Sql.Clear;
   IbQuery1.Sql.Add(Select Apellido,Nombres,DNI,Direccion From Clientes);
   IbQuery1.Sql.Add(Where apellido = 'Perez')
   ibQuery1.Sql.Open;
Donde solo traera los Perez
y si quiero editar un registro, primero lo busco y solo traigo el que me interesa

Mas o menos es así

En cuanto a las tablas si cerras y volves a abrir los cambios estan tiene que ser tema de refresco pero ahi como ya te dije mucho no se.
Reply With Quote
  #23  
Old 02/05/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by pelikno View Post
El problema es que no se actualizan las tablas y no se porque !!
Veamos:
Terminal 1: abres la ficha de artículos, buscas el artículo 'A001' y lo tienes en pantalla.
Terminal 2: abres la ficha de artículos, buscas el artículo 'A001' y lo tienes en pantalla.

En el terminal 1 modificas el precio del artículo. Haces 'post' y 'commitretaining'.
En el terminal 2 sigues viendo la pantalla con el precio anterior, si vuelves a buscar el mismo artículo entonces te aparecerá con el nuevo precio.
¿Es eso?
Reply With Quote
  #24  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by MartinS View Post
Simplemente porque no es recomendable ni necesario en cualquier sistema que se muestren todos los registros. Es decir, cuando un usuario busca algo en particular sabe lo que necesita ver y nosotros debemos darle mas o menos la estructura de busqueda para que no se nos dispare la memoria del programa. Imaginate si la tabla tiene un millon de registros por ejemplo. Entonces solo limito lo que quiero mostrar.
Por otro lado las consultas se ejecutan en el servidor y enviar todos (y digo todos) los datos por red puede ser demasiado engorroso y saturar todo facilmente. Por ello mis consultas son del tipo

Código Delphi [-]
   IbQuery1.close;
   IbQuery1.Sql.Clear;
   IbQuery1.Sql.Add(Select Apellido,Nombres,DNI,Direccion From Clientes);
   IbQuery1.Sql.Add(Where apellido = 'Perez')
   ibQuery1.Sql.Open;
Donde solo traera los Perez
y si quiero editar un registro, primero lo busco y solo traigo el que me interesa

Mas o menos es así

En cuanto a las tablas si cerras y volves a abrir los cambios estan tiene que ser tema de refresco pero ahi como ya te dije mucho no se.
Entiendo lo que pasa que ente caso la tabla de localidades para dar de alta un inmueble por lo tanto tiene que estar todas porque no se sabe a priori cual es la correcta.
Me podrías decir de las opciones del transaction cual seria la correcta en este caso para cuando realizo un cambio que no espere para hacer commit y se realice al instante ?
Reply With Quote
  #25  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Veamos:
Terminal 1: abres la ficha de artículos, buscas el artículo 'A001' y lo tienes en pantalla.
Terminal 2: abres la ficha de artículos, buscas el artículo 'A001' y lo tienes en pantalla.

En el terminal 1 modificas el precio del artículo. Haces 'post' y 'commitretaining'.
En el terminal 2 sigues viendo la pantalla con el precio anterior, si vuelves a buscar el mismo artículo entonces te aparecerá con el nuevo precio.
¿Es eso?
Todo correcto excepto que para ver el nuevo precio en la terminal 2 tengo que cerrar mi aplicacion y volver a ejecutar y ahi si me muestra actualizada la base, como que se tiene que desconectar para poder actualizar la tabla no se porque
Reply With Quote
  #26  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
ademas la base si se actualiza porque por ejemplo
-terminal 1 agrego la localida con codigo 2 la grilla muestra
cod nombre
1 loc1
2 loc2


-la terminal 2 muestra o sea no se actualizo
cod nombre
1 loc1

-la terminal 2 intento agregar localidad con codigo 2 me tira error de primarykey o sea que si se agrego en la base pero la tabla no lo refleja
Reply With Quote
  #27  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Código Delphi [-]
procedure TForm1.localidadesAfterPost(DataSet: TDataSet);
begin

CustomerData.IBTransaction1.CommitRetaining;
CustomerData.ibdatabase.ApplyUpdates([localidades]);
localidades.ApplyUpdates;
localidades.Active:=false;
localidades.Active:=true; 
localidades.Refresh;


end;

Estado de mi transaction
active = true
defaultaction =tacommit
defauldatabase = ibdatabase
Idletimer = 0
name =ibtransaction
params = read_committed
rec_version
nowait
tag = 0

estado de mi base de datos
connected= true
databasename = 192.168.1.226:C:\Documents and Settings\virtualbox\Escritorio\misistema\mibase.FDB
defaultransaction = IBTransaction
Idletimer = 0
loginpromt = false
name = ibdatabase
params = user_name=SYSDBA
password=masterkey
sql_role_name=3
lc_ctype=ISO8859_1
sqldialect = 3
tag = 0
traceflags = todas en false

----------------------------------
las ibtables tiene como database =CustomerData.ibdatabase y no se de alguna propiedad que tenga que modificar para que se actualice como tiene la componenete tquery la propiedad requestlive.
Reply With Quote
  #28  
Old 02/05/2012
MartinS MartinS is offline
Miembro
NULL
 
Join Date: Nov 2011
Location: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
A ver vamos por parte dijo JACK

Yo para los datos uso un TDataModule y este el procedimiento cuando se crea (pone en uses IniFiles)


Código Delphi [-]
procedure TDm.DataModuleCreate(Sender: TObject);
Var BaseDeDatos: String;
    IniFile: TIniFile;
begin
   // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then
    ShowMessage('Error al cargar Base de Datos') else
    BaseGeneral.DatabaseName := BaseDeDatos;
end;

Lo que hace es leer un archivo .ini que se encuentra en el mismo directorio del ejecutable tomando la ruta de la base de datos

Dentro del .ini (BDatos.ini) tiene solo esto (Cliente/servidor):

[BD]
Path=":C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"

y en la maquina cliente por decirlo de alguna manera tengo en un directorio la copia del ejecutable pero el ini de esa maquina dice esto:

[BD]
Path="10.151.129.138:C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"

donde esa IP es donde esta la Base de datos.

Resumiendo tengo dos ejecutables, uno en el cliente/servidor y otro en el cliente pero con diferente Ini. No se si me explico.-
Proba algo similar
Reply With Quote
  #29  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by MartinS View Post
A ver vamos por parte dijo JACK

Yo para los datos uso un TDataModule y este el procedimiento cuando se crea (pone en uses IniFiles)


Código Delphi [-]
procedure TDm.DataModuleCreate(Sender: TObject);
Var BaseDeDatos: String;
    IniFile: TIniFile;
begin
   // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then
    ShowMessage('Error al cargar Base de Datos') else
    BaseGeneral.DatabaseName := BaseDeDatos;
end;

Lo que hace es leer un archivo .ini que se encuentra en el mismo directorio del ejecutable tomando la ruta de la base de datos

Dentro del .ini (BDatos.ini) tiene solo esto (Cliente/servidor):

[BD]
Path=":C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"

y en la maquina cliente por decirlo de alguna manera tengo en un directorio la copia del ejecutable pero el ini de esa maquina dice esto:

[BD]
Path="10.151.129.138:C:\Desarrollos\RegistroGeneral\MASTERBASE.FDB"

donde esa IP es donde esta la Base de datos.

Resumiendo tengo dos ejecutables, uno en el cliente/servidor y otro en el cliente pero con diferente Ini. No se si me explico.-
Proba algo similar
Si probe copiar el ejecutable en el escritorio de la terminal y le coloque a la base de datos la ip del servidor, si no me equivoco es lo mismo que hiciste vos nada mas que no tomo la ip de un archivo. y no me actualiza cuando agrego algo me tira error de primary key
Reply With Quote
  #30  
Old 02/05/2012
MartinS MartinS is offline
Miembro
NULL
 
Join Date: Nov 2011
Location: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Quote:
Originally Posted by pelikno View Post
Código Delphi [-]
procedure TForm1.localidadesAfterPost(DataSet: TDataSet);
begin

CustomerData.IBTransaction1.CommitRetaining;
CustomerData.ibdatabase.ApplyUpdates([localidades]);
localidades.ApplyUpdates;
localidades.Active:=false;
localidades.Active:=true; 
localidades.Refresh;


end;
El commitRetaining va despues del applyupdates.
Reply With Quote
  #31  
Old 02/05/2012
MartinS MartinS is offline
Miembro
NULL
 
Join Date: Nov 2011
Location: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Quote:
Originally Posted by pelikno View Post
Si probe copiar el ejecutable en el escritorio de la terminal y le coloque a la base de datos la ip del servidor, si no me equivoco es lo mismo que hiciste vos nada mas que no tomo la ip de un archivo. y no me actualiza cuando agrego algo me tira error de primary key
¿Y como hiciste eso? Por codigo?.. no entiendo?
Reply With Quote
  #32  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by MartinS View Post
¿Y como hiciste eso? Por codigo?.. no entiendo?
en la configuracion de la base le puse directamente la ip del servidor de mi aplicacion o sea 192.168.1.226, cuando se ejecuta en el servidor mi aplicacion es como la ip loopback porque se direcciona la base a la misma maquina, pero cuando se hace desde el cliente , la base apunta a la ip 192.168.226 cuando la localhost es 192.168.1.224 me explico ?
La ip de la base se la seteo directamente con 192.168.1.226:C:\Documents and Settings\virtualbox\Escritorio\misistema\mibase.FDB
Reply With Quote
  #33  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by MartinS View Post
El commitRetaining va despues del applyupdates.
No actualiza con ese cambio
Reply With Quote
  #34  
Old 02/05/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si usas los componentes IBX, yo nunca usé eso de "applyupdates"

En el evento afterpost del dataset debes hacer el commit, algo así:

Código Delphi [-]
procedure TDMmain.QRcentrosCosteAfterPost(DataSet: TDataSet); 
begin 
  DataSet.Transaction.CommitRetaining; 
end;
Reply With Quote
  #35  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Si usas los componentes IBX, yo nunca usé eso de "applyupdates"

En el evento afterpost del dataset debes hacer el commit, algo así:

Código Delphi [-]
procedure TDMmain.QRcentrosCosteAfterPost(DataSet: TDataSet); 
begin 
  DataSet.Transaction.CommitRetaining; 
end;
CustomerData es mi datamodule
y esto es lo que esta en el evento afterpost de mi ibtable
Código Delphi [-]
CustomerData.ibtransaction.ApplyUpdates;
Localidades.refresh;

sigue haciendo lo mismo, es como si desde la base de datos no les mande el aviso que se modificaron los datos y se vuelva a mostrar en la grilla, doy de alta una localidad con codigo 4 en una terminal y en la otra no la veo hasta que no cierro la aplicacion y la vuelvo abrir
Reply With Quote
  #36  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Sera problema de delphi 5 y las componentes interbase ?
Voy a ver si puedo compilar con delphi 10 a ver que pasa porque es algo muy simple lo que quiero hacer y no se que pasa que no anda y me estoy volviendo loco.
Reply With Quote
  #37  
Old 02/05/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by pelikno View Post
Sera problema de delphi 5 y las componentes interbase ?
No, no es problema de delphi ni de los componentes, es problema de las confirmaciones de transacciones, ya te lo hemos repetido constantemente un montón de veces

¿Pero has probado lo que te hemos comentado?
Reply With Quote
  #38  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
No, no es problema de delphi ni de los componentes, es problema de las confirmaciones de transacciones, ya te lo hemos repetido constantemente un montón de veces

¿Pero has probado lo que te hemos comentado?
si si probe todo, fijate en los post anteriores que puse el codigo exactamente como lo tengo en el delphi ademas de la configuracion de las componentes.
Reply With Quote
  #39  
Old 02/05/2012
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by pelikno View Post
si si probe todo,
¿Y qué resultados has obtenido?, ¿bien?, ¿algún mensaje?, ¿cómo has hecho la prueba?, ¿con qué código?...
Reply With Quote
  #40  
Old 02/05/2012
pelikno pelikno is offline
Miembro
NULL
 
Join Date: Oct 2010
Posts: 95
Poder: 16
pelikno Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
¿Y qué resultados has obtenido?, ¿bien?, ¿algún mensaje?, ¿cómo has hecho la prueba?, ¿con qué código?...
ningun resultado hace lo mismo, o me actualiza, ahora estoy tratanto de compilar con delphi 2010 a ver si cambia pero no me conecta a la base remota estoy fijandome porque
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Diseño de Sistema magnu9 Varios 14 16/10/2007 05:27
Consulta con diseño de BD Petolansa Varios 7 11/08/2007 02:30
en diseño web miamuxi Conexión con bases de datos 6 19/01/2007 20:13
Diseño pepelu1975 Varios 1 31/05/2004 09:55
duda en el diseño wonder boy SQL 3 31/03/2004 19:55


All times are GMT +2. The time now is 12:34.


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