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 20-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Amigo, no te enteras.
Te empeñas en no contestar la pregunta, o no entenderla, Casimiro.

Si no sabes contestarla, o no usas SQLite3, pues no deberias de insistir en señalar al projimo, causando solo repudio y polemicas totalmente innecesarias.
Responder Con Cita
  #2  
Antiguo 20-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No es concurrente, así que lo que pretendes hacer no se puede conseguir porque sqlite no es una "auténtica" base de datos multiusuario y multitarea.
Ya lo pone en el texto "que has encontrado" y ya te lo han comentado otro compañero.
No puedes encontrar ningún componente que hagas lo que quieres porque la BD no lo permite, no tiene nada que ver con los componentes que uses.

Si quieres conseguir lo que pretendes, haz caso a los propios creadores de sqlite, ya lo dice en el texto de ellos (extraido del texto que te puse al principio):
Cita:
However, client/server database engines (such as PostgreSQL, MySQL, or Oracle) usually support a higher level of concurrency and allow multiple processes to be writing to the same database at the same time. This is possible in a client/server database because there is always a single well-controlled server process available to coordinate access. If your application has a need for a lot of concurrency, then you should consider using a client/server database. But experience suggests that most applications need much less concurrency than their designers imagine.
Y como dice rretamar, también Firebird.

Por cierto, en todos tus mensajes deja muy claro que no sabes y, sin embargo, descalificas a los que te contestan, que te contestan porque saben.
Una cura de humildad te vendría bien.
Saludos.
Responder Con Cita
  #3  
Antiguo 20-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No es concurrente, así que lo que pretendes hacer no se puede conseguir porque sqlite no es una "auténtica" base de datos multiusuario y multitarea.
Ya lo pone en el texto "que has encontrado" y ya te lo han comentado otro compañero.
No puedes encontrar ningún componente que hagas lo que quieres porque la BD no lo permite, no tiene nada que ver con los componentes que uses.

Si quieres conseguir lo que pretendes, haz caso a los propios creadores de sqlite, ya lo dice en el texto de ellos (extraido del texto que te puse al principio):

Y como dice rretamar, también Firebird.

Por cierto, en todos tus mensajes deja muy claro que no sabes y, sin embargo, descalificas a los que te contestan, que te contestan porque saben.
Una cura de humildad te vendría bien.
Saludos.
Tu inerpretacion no es correcta, Casimiro.

SQLite es multiconcurrente, y aun se puede usar (y se usa) en websites.

Si lees mas detenidadmente la informacion de SQlite, inclusive la que tu mismo citas, te darias cuenta de que SI es multi usuario.

Los locks que pone SQLite3 no se comparan con los de una basededatos tipo servidor, pero aun ellas tambien detienen el acceso al escribir datos mediate "ques".

Ademas, ya explique que tengo una aplicacion que permite la funcion como me interesa. Con dos aplicaciones de ella, abro la misma base de datos y puedo usarlas yo mismo, leer y escribir sin problemas. Lo mismo es posible con mas usuarios sobre la misma base de datos.

Desde luego no pretendo decir ni he dicho que SQLite sea igual que Postgres o Oracle en cuanto a multiusuarios y administracion de transacciones.

Si no hay respuestas, procedo a investigar los componentes de Devart, que claramente especifican que puede lograr lo que pregunte.

Aqui esta esta cita de Devart (no es mi antojo):
SQLite technology support

  • SQLite database encryption in Direct mode
  • Custom SQLite to Delphi data type mapping
  • Concurrent access <=========================ESPERO SEA CLARO ESTO
  • Shared-Cache mode
  • Read Uncommitted<----------------TAMBIEN ESTO ES IMPORTANTE
  • SQLite user-defined functions
  • Foreign keys
  • Autoincrement
  • Fast record insertion with the TLiteLoader component
La cita de Devart indica que aprovecha las funciones ya de por si de SQLite.
Responder Con Cita
  #4  
Antiguo 20-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Según dicen ellos mismos, usan bloqueos de lectura/escritura, así que aunque puedan haber varios clientes conectados al mismo tiempo, no pueden actuar al mismo tiempo, eso no es concurrencia.
La explicación que dan es que normalmente las lecturas/escrituras tardan poco y apenas tienen que esperar los otros clientes. Pero eso no es multiconcurrencia real, eso es tú primero, ahora yo, después el otro, ahora otra vez tú, etc. pero no todos al mismo tiempo. No es multiconcurrente.
Ahora bien, que a ti te viene bien ese sistema para el trabajo que estás haciendo, entonces perfecto.
Responder Con Cita
  #5  
Antiguo 20-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver, sinceramente creo que aquí hay un mar de confusiones.

La documentación de SQLite (no la vuelvo a citar pues ya se ha hecho en varias ocasiones en el hilo) claramente indica que SQLite es concurrente y que no saben de ningún otro sistema encajado que maneje tanta concurrencia como SQLite. Al mismo tiempo, también establece que tiene sus limitaciones y que no puede compararse con gestores mayores (de los cuales, por cierto, Firebird no es, ni con mucho el único y no necesariamente es el mejor).

Que la concurrencia que menciona la documentación de SQLite sea o no una concurrencia real, es un asunto cuestionable, claramente, pero el sujeto de dicha objeción sería, en todo caso, el desarrollador de SQLite y no un forista que pregunta acerca de ello.

Quizá me equivoque, desde luego, pero en mi opinión, el forista dejó en claro desde un principio que era consciente de las limitaciones y la pregunta era si con delphi podía abrirse una misma base de datos con dos aplicaciones, que no es lo mismo que preguntar si SQLite es o no concurrente.

En una rápida prueba usando Delphi 7 y ZEOS veo que sí, que dos aplicaciones delphi pueden abrir la misma base de datos al mismo tiempo.

// Saludos
Responder Con Cita
  #6  
Antiguo 20-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Entonces "alguien" no ha entendido la pregunta porque eso se suponía que se puede hacer y que no hace falta ningún componente especial para hacerlo, valen todos.
Responder Con Cita
  #7  
Antiguo 20-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El punto es que, al menos según lo que reporta el forista, en Lázarus no se puede. De ahí que pregunte si en delphi sí se puede.

// Saludos
Responder Con Cita
  #8  
Antiguo 21-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Cita:
Empezado por roman Ver Mensaje
A ver, sinceramente creo que aquí hay un mar de confusiones.

La documentación de SQLite (no la vuelvo a citar pues ya se ha hecho en varias ocasiones en el hilo) claramente indica que SQLite es concurrente y que no saben de ningún otro sistema encajado que maneje tanta concurrencia como SQLite. Al mismo tiempo, también establece que tiene sus limitaciones y que no puede compararse con gestores mayores (de los cuales, por cierto, Firebird no es, ni con mucho el único y no necesariamente es el mejor).

Que la concurrencia que menciona la documentación de SQLite sea o no una concurrencia real, es un asunto cuestionable, claramente, pero el sujeto de dicha objeción sería, en todo caso, el desarrollador de SQLite y no un forista que pregunta acerca de ello.

Quizá me equivoque, desde luego, pero en mi opinión, el forista dejó en claro desde un principio que era consciente de las limitaciones y la pregunta era si con delphi podía abrirse una misma base de datos con dos aplicaciones, que no es lo mismo que preguntar si SQLite es o no concurrente.

En una rápida prueba usando Delphi 7 y ZEOS veo que sí, que dos aplicaciones delphi pueden abrir la misma base de datos al mismo tiempo.

// Saludos
Gracias Roman, por la informacion que solicitaba. Ha sido para mi una sorpresa que no me entendiesen una pregunta bastante simple.

De hecho, avances en resolver mi problema parecen indicar que se relaciona con que SQLite3Connection que se incluye en Lazarus se describe como verificado en Windows 32 bits, y mi Windows-7 es de 64 bits, aunque mi instalacion Lazarus es de 32 bits. Y aparte Windows-7 tiene unos locks mas complejos a archivos en uso y el componente de conexion es anterior. Y aun mas, SQLite ultimas versiones, tambien trae otras tecnolgogias que son posteriores al componente de Lazarus.

Me falta probar en mi otra laptop de Windows 32 bits, y luego les platico el resultado.
Responder Con Cita
  #9  
Antiguo 22-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 15
ElMug Va por buen camino
Amigos,

ya encontre el problema:

Estaba usando "reset" para verificar el file (base de datos SQLite3) que se abre, en el viejo entendimiento que reset "opens to read". Esto, para evitar crear bases de datos vacias, que es una peculiaridad de SQLite3 (Cuando el archivo no lo encuentra al abrir, SQLite3 crea una base de datos vacia, lista para ser poblada).

Pero "reset", cuando el file ya esta abierto, no regresa zero, aun cuando reset es para "open to read"!
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
manipular la misma base de datos en la misma pc DELFIN2000 Conexión con bases de datos 10 23-07-2010 18:34:28
doble Puerto serial a la misma base de datos FGarcia Varios 0 22-11-2006 23:45:29
Dos aplicaciones y sola base de datos..? kia Conexión con bases de datos 19 01-05-2006 18:08:20
¿Existe algún problema si quiero utilizar 2 TQuery para la misma base de datos ? nuri SQL 4 28-07-2005 09:40:54
Novato - Aplicaciones con Base de Datos Chocoslovaco Conexión con bases de datos 9 08-07-2005 11:25:12


La franja horaria es GMT +2. Ahora son las 07:58:02.


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