Página 1 de 1
Una de Xailer en Red
Publicado: Jue Mar 24, 2011 7:23 pm
por perolero
Hola:
La verdad es que no para de preguntar, pero bueno, habrá que aprender. He montado la aplicación en una pequeña red windows de dos ordenadores en el despacho, ataco una base de datos access (no es por gusto me viene impuesta) y resukta que los cambios que hago en un PC no son visibles en el otro, sino arrancó de nuevo la aplicación, he probado cambiando los valores de los datasets en las propiedades
:nCursorLocation
así como en
:nCursorType
y la verdad es que no hay manera de que funcione adecuadamente. Alguien me podría decir algo. Muchas gracias y un saludo.
Emilio Gil.
Una de Xailer en Red
Publicado: Jue Mar 24, 2011 7:38 pm
por emeasoft
Emilio:
Para poder leer un cambio en la base de datos en un terminal de red, usted tiene que cerrar el archivo en su terminal y abrirlo de nuevo.
No conozco otra manera.
Una de Xailer en Red
Publicado: Jue Mar 24, 2011 7:49 pm
por perolero
Hola Mario:
Tiene que haber alguna otra forma de lo contrario si la tabla es muy grande, abrirlo y cerrarla cada vez que haces un alta, borrado o edición consumiria muchos segundos. De todos modos gracias.
Emilio.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 6:08 am
por Martin Del Angel
On 3/24/2011 1:23 PM, Emilio Gil wrote:
> Hola:
>
> La verdad es que no para de preguntar, pero bueno, habrá
> que aprender. He montado la aplicación en una pequeña red
> windows de dos ordenadores en el despacho, ataco una base de
> datos access (no es por gusto me viene impuesta) y resukta
> que los cambios que hago en un PC no son visibles en el
> otro, sino arrancó de nuevo la aplicación, he probado
> cambiando los valores de los datasets en las propiedades
>
> :nCursorLocation
>
> así como en
>
> :nCursorType
>
> y la verdad es que no hay manera de que funcione
> adecuadamente. Alguien me podría decir algo. Muchas gracias
> y un saludo.
>
> Emilio Gil.
>
>
>
Hola Emilio:
Puedes poner el parte de código donde grabas los Datos.
Para poder ayudar.
Saludos...
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 10:43 am
por ignacio
Hola,
Pruebe con oDataset:Refresh()
Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8b8c1b$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
La verdad es que no para de preguntar, pero bueno, habrá
que aprender. He montado la aplicación en una pequeña red
windows de dos ordenadores en el despacho, ataco una base de
datos access (no es por gusto me viene impuesta) y resukta
que los cambios que hago en un PC no son visibles en el
otro, sino arrancó de nuevo la aplicación, he probado
cambiando los valores de los datasets en las propiedades
:nCursorLocation
así como en
:nCursorType
y la verdad es que no hay manera de que funcione
adecuadamente. Alguien me podría decir algo. Muchas gracias
y un saludo.
Emilio Gil.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 11:14 am
por perolero
Hola Ignacio:
Muchas gracias Ignacio, es un poco lento pero funciona. Otra pregunta es normal que abrir una tabla de 140.000 registros (indepemdientemente de que la base de datos sea Access o Sql Sever) le cueste 4 segundos ?, es que en determinadas situaciones donde tienes que abrir 4 o 5 tablas como esta se te van 20 o 25 segundos y eso es infumable (claro yo siempre he trabajado con dbf y el asunto era instantaneo independientemente del número de registros,
Saludos.
Emilio Gil.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 11:44 am
por ignacio
Emilio,
En entornos SQL (Access igualmente) no es buena práctica abrir las tablas
con múltiples registros de forma total. Tiene más sentido mostrar sólo un
rango pequeño de los datos, por ejemplo, un día, un mes, un cliente, etc.
Cuando tenga que abrir más de una tabla, si éstas están relacionadas debería
utilizar técnicas de SQL JOIN.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8c6b10$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola Ignacio:
Muchas gracias Ignacio, es un poco lento pero funciona.
Otra pregunta es normal que abrir una tabla de 140.000
registros (indepemdientemente de que la base de datos sea
Access o Sql Sever) le cueste 4 segundos ?, es que en
determinadas situaciones donde tienes que abrir 4 o 5 tablas
como esta se te van 20 o 25 segundos y eso es infumable
(claro yo siempre he trabajado con dbf y el asunto era
instantaneo independientemente del número de registros,
Saludos.
Emilio Gil.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 12:34 pm
por perolero
Ignacio:
Perdon por mi ignorancia, pero como abriría una tabla para un solo día en el caso de que se llamase la tabla "Calendario" y el campo dia "FechaCalendario".
Muchas gracias,
Emilio.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 5:21 pm
por ignacio
Emilio,
Debería hacer una 'select' de SQL. Ya que veo que no tiene muchos
conocimientos al respecto, le recomiendo que utilice algún asistente para
ello como el que incorpora el propio Access.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8c7dc6$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Ignacio:
Perdon por mi ignorancia, pero como abriría una tabla
para un solo día en el caso de que se llamase la tabla
"Calendario" y el campo dia "FechaCalendario".
Muchas gracias,
Emilio.
Una de Xailer en Red
Publicado: Vie Mar 25, 2011 5:38 pm
por perolero
Hola Ignacio:
Si se refiere al uso de el comando execute al modo:
Application:oMainForm:oAdoNH:Execute("SELECT * FROM Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#" ,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
Lo he probado pero su comportamiento no consigo controlarlo, de hecho la primera vez que entro a la opción no tengo problemas y muestra el calendario del día que indica el ::oDateEdit1:Value, pero cuando desde dentro del formulario cambio la fecha y vuelvo a ejecutar las instrucciones anteriores
Application:oMainForm:oAdoNH:Execute("SELECT * FROM Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#" ,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
ya no me muestra las columnas definidas en diseño en el IDE, sino que me las muestra todas las de la tabla, y además los eventos definidos para las columnas en OnGetData y en OndrawCell son ignorados en la segunda entrada.
Que es lo que no estoy haciendo bien,
Saludos,
Emilio Gil.
Una de Xailer en Red
Publicado: Sab Mar 26, 2011 11:12 am
por ignacio
Emilio,
Simplemente utilice un objeto TQuery de la paleta de componentes DB y
asígnele su propiedad cSelect.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8cc51e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola Ignacio:
Si se refiere al uso de el comando execute al modo:
Application:oMainForm:oAdoNH:Execute("SELECT * FROM
Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#"
,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
Lo he probado pero su comportamiento no consigo
controlarlo, de hecho la primera vez que entro a la opción
no tengo problemas y muestra el calendario del día que
indica el ::oDateEdit1:Value, pero cuando desde dentro del
formulario cambio la fecha y vuelvo a ejecutar las
instrucciones anteriores
Application:oMainForm:oAdoNH:Execute("SELECT * FROM
Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#"
,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
ya no me muestra las columnas definidas en diseño en el
IDE, sino que me las muestra todas las de la tabla, y
además los eventos definidos para las columnas en OnGetData
y en OndrawCell son ignorados en la segunda entrada.
Que es lo que no estoy haciendo bien,
Saludos,
Emilio Gil.
Una de Xailer en Red
Publicado: Sab Mar 26, 2011 11:14 am
por ignacio
Quise decir TSQLQuery.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Ignacio Ortiz de Zúñiga" escribió en el mensaje de
noticias:4d8dbbfd$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Emilio,
Simplemente utilice un objeto TQuery de la paleta de componentes DB y
asígnele su propiedad cSelect.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8cc51e$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola Ignacio:
Si se refiere al uso de el comando execute al modo:
Application:oMainForm:oAdoNH:Execute("SELECT * FROM
Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#"
,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
Lo he probado pero su comportamiento no consigo
controlarlo, de hecho la primera vez que entro a la opción
no tengo problemas y muestra el calendario del día que
indica el ::oDateEdit1:Value, pero cuando desde dentro del
formulario cambio la fecha y vuelvo a ejecutar las
instrucciones anteriores
Application:oMainForm:oAdoNH:Execute("SELECT * FROM
Calendario WHERE Dia = #" + DTOC(::oDateEdit1:Value) + "#"
,,32, @::oCalendario)
::oDbBrowse:oDataSet := ::oCalendario
ya no me muestra las columnas definidas en diseño en el
IDE, sino que me las muestra todas las de la tabla, y
además los eventos definidos para las columnas en OnGetData
y en OndrawCell son ignorados en la segunda entrada.
Que es lo que no estoy haciendo bien,
Saludos,
Emilio Gil.
Una de Xailer en Red
Publicado: Dom Mar 27, 2011 1:10 pm
por perolero
Hola Ignacio:
Probado y funcionando ok. Una duda más al respecto, entiendo que a la hora de coonsultar y/o modificar no hay más que traerse a la máquina de uno el RecordSet que le interesa (1 dia, un cliente, etc) y hacer las operaciones pertinentes una vez realizadas las mismas los cambios quedaran reflejados en la tabla madre (por llamarle de algun modo), estoy en lo cierto ?
Si lo anterior es cierto, que tecnica se utilizaría para la adición de un registro a una tabla que en un principio no te puedes traer como RecordSet porque no lo conoces, o aún conociendolo no hay registros a priori que cumplan la condición ?
Un saludo y muchas gracias,
Emilio Gil.
Una de Xailer en Red
Publicado: Lun Mar 28, 2011 10:08 am
por ignacio
Emilio,
>>quedaran reflejados en la tabla madre
Si
>>que tecnica se utilizaría para la adición de un registro
La misma, puede realizar el alta con un recordset de tabla o con un
TSQLQuery. Su única precaución ha de ser incluir los campos que componene la
clave primaria en el query. Incluso podría hacer un query que no devolviese
ninguna fila y hacer el alta sobre dicho dataset.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
http://www.xailer.com/forum
http://www.xailer.com/dokuwiki
"Emilio Gil" escribió en el mensaje de
noticias:4d8f1b42$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola Ignacio:
Probado y funcionando ok. Una duda más al respecto,
entiendo que a la hora de coonsultar y/o modificar no hay
más que traerse a la máquina de uno el RecordSet que le
interesa (1 dia, un cliente, etc) y hacer las operaciones
pertinentes una vez realizadas las mismas los cambios
quedaran reflejados en la tabla madre (por llamarle de algun
modo), estoy en lo cierto ?
Si lo anterior es cierto, que tecnica se utilizaría para
la adición de un registro a una tabla que en un principio
no te puedes traer como RecordSet porque no lo conoces, o
aún conociendolo no hay registros a priori que cumplan la
condición ?
Un saludo y muchas gracias,
Emilio Gil.
Una de Xailer en Red
Publicado: Lun Mar 28, 2011 10:45 am
por perolero
Ignacio:
Muchas gracias y que tenga un viaje a Cancún, si se acuerda dele un abrazo a René de su viejo amigo Emilio.
Saludos,