[RESUELTO]Convertir un proyecto de Base a multi-Ulizador

Discute sobre las herramientas de la base de datos
Responder
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

[RESUELTO]Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

 Editado:  
 Editado:  
De hace mucho que sentí necesidad de tener en casa algo que me permitía gestionar el presupuesto familiar.

Como antiguo contable y usuario de ACCESS sabía cómo hacerlo en una aplicación para administrar una base de datos.
En un primer intento, intenté hacer esto en el BASE, pero como, en aquel momento no tenía los conocimientos necesarios, acabé por renunciar y hacer en el CALC (que, al menos para mí, es la aplicación más lograda del Openoffice).

Como lo que pretendía, saber en cada mes y cada año, cuánto gastaba en una determinada rúbrica (gastos de alimentación, por ejemplo) exigía varias hojas de cálculo con varias conexiones, etc, nunca desistió y, a costa de mucha investigación, un proyecto en el Base que me permite saber, en cada momento, lo que pretendo, como se puede ver aquí.

http://aversenosentendemos.blogspot.pt/ ... idade.html

Sucede que, pasado poco más de un año pasado y con sólo unos cuantos miles de registros, estoy más o menos como se menciona aquí:
https://scottishsceptic.co.uk/2017/12/0 ... lled-base/

Es decir, las pérdidas de registros se suceden, días de trabajo resultan improductivos, resolví, para dar otra oportunidad al Base, intentar otra oportunidad a BASE ya mí mismo e intentar el método, referido aquí:

https://forum.openoffice.org/en/forum/v ... 13&t=54182

1. Instalé el servidor
2. He creado la base de datos
3. En BASE he configurado la conexión MySQL
4. Importe las tablas, las consultas, los reportes no conseguí (tal vez por ser creados con Oracle Report Builder), los módulos tampoco los construí y luego copié los códigos
correspondientes)

Resultado:
Las tablas están allí con los respectivos registros
Los formularios funcionan perfectamente
Las consultas también funcionan (querys de select)
Los informes consistentes a mano también
Pero los códigos antiguos, que funcionaban perfectamente en la base, simplemente no funcionan

Pero este código, que además de las inserciones es la base de construcción de toda la información proporcionada por la aplicación, y sin la cual el proyecto es perfectamente inútil para mí, no funciona!

Éste es el código:

Código: Seleccionar todo

Sub Contabiliza()
Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim Statement As Object
Dim ResultSet As Object
Dim oBarraEstado As Object
Dim co1 As Integer


'Inicia o processo de contabilização

'Msgbox "A iniciar o processo de Contabilização"


   'Referencia a barra de estado do documento activo
   oBarraEstado = ThisComponent.getCurrentController.StatusIndicator
   'Estabelece o texto inicial e  o limite da barra de progresso
   oBarraEstado.start( "Processo de Contabilização a decorrer.Aguarde...", 3 )
  

'Limpa todos os movimentos contabilisticos
'Primeiro Processo

'Esta Conexão só funciona em Bases de Dados Registadas
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("contabilidade")
Connection = DataSource.GetConnection("","")
'Connection=thisdatabasedocument.CurrentController.activeconnection   Com o meu  AutoExec dá erro nesta linha por isso necessário registar base de dados

Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("DELETE FROM ""tMOVIMENTOS_CONTA"";")
'Estabelece o valor da barro de progresso
oBarraEstado.setValue( 1 )
'E o texto
oBarraEstado.setText ("Limpou os Dados Contabilísticos")
'Espera um segundo
Wait 1000

'Contabiliza os movimentos a Débito
'Segundo Processo

'Esta Conexão só funciona em Bases de Dados Registadas
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("contabilidade")
Connection = DataSource.GetConnection("","")
'Connection=thisdatabasedocument.CurrentController.activeconnection
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("INSERT INTO ""tMOVIMENTOS_CONTA""(""ID_MOV"",""COD_CONTA"",""DATA_MOV"",""DESC_MOV"",""DEBITO"",""CREDITO"")SELECT ""ID_MOV"",""CONTA_DEB"" AS ""COD_CONTA"",""DATA_MOV"",""DESC_MOV"",""VALOR"" as ""DEBITO"",0 AS ""CREDITO"" FROM ""tMOVIMENTOS"";")
'Estabelece o valor da barro de progresso
oBarraEstado.setValue( 2 )
' E o texto
oBarraEstado.setText ("Inseriu os valores a Débito")
'Espera um segundo
Wait 1000

'Contabiliza os movimentos a Crédito
'Terceiro Processo

'Esta Conexão só funciona em Bases de Dados Registadas
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("contabilidade")
Connection = DataSource.GetConnection("","")
'Connection=thisdatabasedocument.CurrentController.activeconnection
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("INSERT INTO ""tMOVIMENTOS_CONTA""(""ID_MOV"",""COD_CONTA"",""DATA_MOV"",""DESC_MOV"",""DEBITO"",""CREDITO"")SELECT ""ID_MOV"",""CONTA_CRED"" AS ""COD_CONTA"",""DATA_MOV"",""DESC_MOV"",0 as ""DEBITO"",""VALOR"" AS ""CREDITO"" FROM ""tMOVIMENTOS"";")
'Estabelece o valor da barro de progresso
oBarraEstado.setValue( 3 )
' E o texto
oBarraEstado.setText ("Inseriu os valores a Crédito")
'Espera um segundo
Wait 1000



'Finaliza a barra de progresso para devolver o controlo ao utilizador
   oBarraEstado.end()
Msgbox "Processo de Contabilização concluído"

End Sub
¿Alguien sabe o está dispuesto a darme una ayuda en esto?

Quiero declarar tres cosas más:

1. No soy alguien que camina aquí en busca de soporte técnico, sólo alguien con un perfil de usuario avanzado que use lo que sabe y logra obtener para uso propio y, por norma, hasta comparte lo que sabe con quien pretender ayuda, como por otra parte se puede ver aquí (http://aversenosentendemos.blogspot.com/)
2. Los que me han ayudado hasta hoy, tanto aquí en este lugar como en otros, saben que estoy profundamente agradecido a todos los que me han ayudado
3. No poder resolver este problema de pie puede, sencillamente, llevarme, a mi gusto, por definidamente de parte la Base y, por eso, llamamiento hasta los que están detrás de su desarrollo, resuelvan de vez en cuando estos problemas que se han mantenido actualizados para la actualización

Mis votos de una Feliz Navidad y un buen año de 2018 para todos.

"PS": Resolví editar el post porque me parece que ahora está más de acuerdo con lo pretendido
Última edición por joaofmateus el Jue Dic 21, 2017 2:24 pm, editado 2 veces en total.
OpenOffice 4.1.6
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por RMG »

Hola,

Prueba si funciona así.

ResultSet = Statement.executeQuery ("DELETE FROM ""tMOVIMENTOS_CONTA"" ")

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

Hola RMG

¡Demué y no me gustó, no funciona.
Me parece que no se pueden ejecutar querys aquí de esta manera.
Voy a seguir investigando, pues sólo me falta resolver esto.
Hice los informes todos a mano, sólo falta alindar.
Feliz Navidad para ti y tu familia
:knock:
OpenOffice 4.1.6
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por RMG »

Hola,

Acabo de darme cuenta que para las consultas de eliminación y actualización, esta instrucción debe ser así. Prueba a ver.

ResultSet = Statement.executeUpdate ("DELETE FROM ""tMOVIMENTOS_CONTA"" ")
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

Hola RMG
Desafortunadamente tampoco funciona.
Creo que ya he notado, por qué!
Los cambios se deben realizar directamente en BD MySql.

Luego será algo parecido a esto:

Código: Seleccionar todo

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";

if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . $conn->error;
}

$conn->close();
?> 


Como adaptar al lenguaje "Basic" ... pues, si yo supiera, no andaba por aquí, pues sería casi autosuficiente.

(No tengo quaqluer curso de Basic, soy un autodidacta)
OpenOffice 4.1.6
Windows 10
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

Hola a todos

Una vez más vengo a solicitar su ayuda para este problema, ya que hasta ahora, a pesar de las inmensas investigaciones y pruebas todavía no he podido resolver el problema de los DELETES y UPDATES.

Confieso que yo también he venido de ACCESS, me siento como se dice aquí:

https://scottishsceptic.co.uk/2017/12/0 ... lled-base/

La última prueba que hice fue lo siguiente y si funciona el SELECT el UPDATE da error

Código: Seleccionar todo

Sub TextaBD

Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim InteractionHandler as Object
Dim Statement As Object
Dim ResultSet As Object

MsgBox "borrar la base de datos"

DatabaseContext = createUnoService ("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName ("cuentascasa")
 
Si no DataSource.IsPasswordRequired Then
  Connection = DataSource.GetConnection ("", "")
Else
  InteractionHandler = createUnoService ("com.sun.star.sdb.InteractionHandler")
  Connection = DataSource.ConnectWithCompletion (InteractionHandler)
End If

Statement = Connection.createStatement ()
ejecuta consulta
ResultSet = Statement.executeQuery ("SELECT COUNT (` ID_MOV`) FROM "" tMOVIMENTOS_CONTA "" ")))

ResultSet = Statement.executeUpdate (("DELETE * FROM" "tMOVIMENTOS_CONTA" "")) 'Da error aquí
'statement.executeUpdate (deleteQuery)
'excecuting query
'resultSet = statement.executeQuery (selectQuery)

 
'If Not IsNull (ResultSet) Then
 "Mientras que ResultSet.next
   'MsgBox ResultSet.getString (1)
 'Wend
'End If
MsgBox "Proceso completado"
End Sub
La imagen del error
https://drive.google.com/open?id=1m2LYH ... UlMzkVUQ44

Si no resuelvo este problema me vería obligado a abandonar el proyecto, que ya me hizo perder tantas horas y hasta, quizá, el Base.
OpenOffice 4.1.6
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por RMG »

Tengo la sensación que es por el asterisco (*)
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

ola RMG

Una vez más, gracias por tu atención y buena voluntad, por los visados me pareces el único interesado y siempre dispuesto a ayudar en lo que se refiere a los asuntos del BASE, cuando se trata de problemas de cierta complejidad.
Pero no, no es a causa del "*" pues inicialmente experimenté sin él y tampoco funcionaba, sólo después de eso y después de varias investigaciones para saber por qué, y de ver que ambos casos pudieron ser usados experimenté por el "*".
Por ahora no puedo escribir mucho más, pero si las cosas siguen siendo tan dificiles como ahora me parece que tengo que cambiar a "SQLLite". ¿Siempre estarías dispuesto a ayudarme? No quiero que me des el pez, sólo quiero que me enseñas a pescar, Ok?
OpenOffice 4.1.6
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por RMG »

Hola,

Si lo que tratas es simplemente de eliminar una tabla quizás te sirva este ejemplo.Respecto a SQLite, te tengo que decir que todos mis mayores proyectos los tengo con este motor de BD por su estabilidad.

Código: Seleccionar todo

Sub Eliminar tabla()
Dim sSQL As String, oStat As Object
oStat = ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement
sSQL = "DELETE FROM ""tMOVIMIENTOS_CONTA"""
oStat.ExecuteUpdate(sSQL)
End Sub
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

Hola

RMG, he probado y el resultado es exactamente el mismo que el mostrado en la imagen de arriba!

Gracias de todos modos!

Voy a seguir investigando y probando en la misma.
OpenOffice 4.1.6
Windows 10
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

 Editado:  
 Editado:  
Olá RMG

Como não conseguia resolver os problemas com o MySQL resolvi abandonar o projecto e resolvi utilizar o referido aqui:

https://forum.openoffice.org/en/forum/v ... 83&t=65980

Ahora todo funciona a la perfección, finalmente, vamos a comprobar si el problema de la pérdida de datos es el "BASE" o el "HSQLDB".

Sin embargo, necesito tu ayuda para dos cosas:
1. Como el HSQLDB no permite generar un ID automático, necesitaba una macro que me fuera a buscar el último ID de la tabla tMOVIMENTOS, y me actualizara el campo "ID" del formulario "fMOVIMENTOS" con el último ID + 1.
Con mi antigua experiencia de ACCESS, construye esta macro para ir a buscar el último ID, pero no funciona aquí:
Macro:

Código: Seleccionar todo

Sub SeleccionaUltimo

Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim Statement As Object
Dim ResultSet As Object

'Limpa todos os movimentos
 
'Msgbox "Iniciado processo de limpeza"

'Esta Conexão só funciona em Bases de Dados Registadas
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("contabman")
Connection = DataSource.GetConnection("","")
'Connection=thisdatabasedocument.CurrentController.activeconnection
Statement = Connection.createStatement()
Ultimo=ResultSet = Statement.executeQuery("SELECT MAX ID_MOV FROM ""tMOVIMENTOS"";")

MsgBox Ultimo

End Sub
2. Para completar el ramal y no molestar más, será que pudieras adaptar esta macro para que, al iniciar ella me cargara también el formulario "fINICIO" (es que aquí en casa quien carga los datos soy yo o mi esposa y ella no se nota nada de esto).
Macro:

Código: Seleccionar todo

Sub Setup() 'Tools > Customize > Events > Open Document > Assign Macro > "Setup"
	'Globalscope.BasicLibraries.LoadLibrary("MRILib")
  On Error Goto ErrorHandler
  Install_HSQLDB
  'get the current path to this .odb file
	sPathURL = ThisDatabaseDocument.URL
	sPath = ConvertFromURL(sPathURL)
	sName = ThisDatabaseDocument.Title
	iLen = InStr(sPath, sName)
	sPath = Left(sPath, iLen-1)
       
  'setup Class Path
  ClassPath:
	sClassPath = sPath & "driver/hsqldb.jar"
	If Not FileExists(sClassPath) Then 
		sLine1 = "Please add a copy of the HSQLDB engine (hsqldb.jar) to the current folder :  "
		sLine2 = "NOTE:  This is necessary for proper wizard function, but additional benefits include : " 
		sLine3 = "* enhanced portability of the database-folder"
		sLine4 = "* ensures database compatibility across computers and *Office installations"
		sLine5 = "* guards against inadvertent upgrade of your database since the results are uncertain and irreversible"
		sLine6 = "* hsqldb 2.x provides a built-in database management GUI accessible by clicking hsqldb.jar."
		iButton = MsgBox (chr(13) & sLine1 & chr(13) & chr(13) & sPath & chr(13) & chr(13) & sLine2 & _
		chr(13) & sLine3 & chr(13) & sLine4 & chr(13) & sLine5 & chr(13) & sLine6, 18, "hsqldb.jar not found")
		If iButton = 3 Then Exit Sub 'ThisDatabaseDocument.close(True)
		If iButton = 4 Then Goto ClassPath
	End If
	sClassPath = ConvertToURL(sClassPath)
	ThisDatabaseDocument.DataSource.Settings.JavaDriverClassPath = sClassPath 

  'get the HSQL database name from the current folder
	NextFile = Dir(sPath & "database/", 0)
	While NextFile <> ""
		If (Right(NextFile, 7) = ".script") Then dbName = (Left(NextFile, Len(NextFile)-7))
		NextFile = Dir
	Wend
	If dbName = Empty Then 
		sLine1 = "Optionally provide a name for your back-end data files. "
		sLine2 = "NOTE: The particular name is not important. The default below will suffice. "
		dbName = InputBox(sLine1 & chr(13) & chr(13) & sLine2, "Create a new database    *   JDBC  |  HSQL database engine  |  non-embedded data files   *", "mydb")
		If dbName = "" Then dbName = "mydb"
	End If
    
  'check for existing database
	sLine1 = "A new database will be created in the current folder:  "
	sLine2 = "NOTE: This folder with its ""database"" and ""driver"" subfolders constitutes your ""database folder."" "
	sLine3 = "A dedicated 'database folder' is fully portable, and as such it may be renamed or moved as desired."
	sLine4 = "NOTE: This Base front-end file (" & sName & ") must remain in this portable folder.  "
	sLine5 = "You may rename this file as desired, but do maintain the .odb extension if visible. Create a desktop shortcut to this file as desired."
	sLine6 = "NOTE: The back-end HSQL data files will be named: " & dbName & ".*  "
	sLine7 = "These files will reside in the ""database"" subfolder."
	If Not FileExists(sPath & "database/" & dbName & ".script") Then MsgBox sLine1 & chr(13)_
		& sPath & chr(13) & chr(13) & sLine2 & sLine3 _
		& chr(13) & chr(13) & sLine4 & sLine5 _
		& chr(13) & chr(13) & sLine6 & sLine7 _
		, 64, "Please Read"
     
  'setup Data Source URL
	sURL_prefix = "jdbc:hsqldb:"
	sURL_args = ";default_schema=true;shutdown=true;hsqldb.default_table_type=cached;get_column_name=false"
	sURL = sURL_prefix & "file:///" & sPath & "database/" & dbName & sURL_args
	ThisDatabaseDocument.DataSource.URL = sURL
	ThisDatabaseDocument.DataSource.Settings.JavaDriverClass = "org.hsqldb.jdbcDriver"
'	ThisDatabaseDocument.DataSource.User = "SA"

	Exit Sub
  ErrorHandler: 
	MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")", 16, "Setup: macro code error"
End Sub
Última edición por joaofmateus el Mié Dic 20, 2017 4:25 pm, editado 1 vez en total.
OpenOffice 4.1.6
Windows 10
joaofmateus
Mensajes: 33
Registrado: Lun Dic 05, 2016 12:53 pm

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por joaofmateus »

Bueno, RMG pensar con su arma ( "gesfactura"), descubrió la pólvora, que acrecentei unas pocas líneas de código (se dará cuenta de cuál) y voilá:
El código actual

Código: Seleccionar todo

Sub Setup() 'Tools > Customize > Events > Open Document > Assign Macro > "Setup"
	'Globalscope.BasicLibraries.LoadLibrary("MRILib")
  On Error Goto ErrorHandler
  Install_HSQLDB
  'get the current path to this .odb file
	sPathURL = ThisDatabaseDocument.URL
	sPath = ConvertFromURL(sPathURL)
	sName = ThisDatabaseDocument.Title
	iLen = InStr(sPath, sName)
	sPath = Left(sPath, iLen-1)
       
  'setup Class Path
  ClassPath:
	sClassPath = sPath & "driver/hsqldb.jar"
	If Not FileExists(sClassPath) Then 
		sLine1 = "Please add a copy of the HSQLDB engine (hsqldb.jar) to the current folder :  "
		sLine2 = "NOTE:  This is necessary for proper wizard function, but additional benefits include : " 
		sLine3 = "* enhanced portability of the database-folder"
		sLine4 = "* ensures database compatibility across computers and *Office installations"
		sLine5 = "* guards against inadvertent upgrade of your database since the results are uncertain and irreversible"
		sLine6 = "* hsqldb 2.x provides a built-in database management GUI accessible by clicking hsqldb.jar."
		iButton = MsgBox (chr(13) & sLine1 & chr(13) & chr(13) & sPath & chr(13) & chr(13) & sLine2 & _
		chr(13) & sLine3 & chr(13) & sLine4 & chr(13) & sLine5 & chr(13) & sLine6, 18, "hsqldb.jar not found")
		If iButton = 3 Then Exit Sub 'ThisDatabaseDocument.close(True)
		If iButton = 4 Then Goto ClassPath
	End If
	sClassPath = ConvertToURL(sClassPath)
	ThisDatabaseDocument.DataSource.Settings.JavaDriverClassPath = sClassPath 

  'get the HSQL database name from the current folder
	NextFile = Dir(sPath & "database/", 0)
	While NextFile <> ""
		If (Right(NextFile, 7) = ".script") Then dbName = (Left(NextFile, Len(NextFile)-7))
		NextFile = Dir
	Wend
	If dbName = Empty Then 
		sLine1 = "Optionally provide a name for your back-end data files. "
		sLine2 = "NOTE: The particular name is not important. The default below will suffice. "
		dbName = InputBox(sLine1 & chr(13) & chr(13) & sLine2, "Create a new database    *   JDBC  |  HSQL database engine  |  non-embedded data files   *", "mydb")
		If dbName = "" Then dbName = "mydb"
	End If
    
  'check for existing database
	sLine1 = "A new database will be created in the current folder:  "
	sLine2 = "NOTE: This folder with its ""database"" and ""driver"" subfolders constitutes your ""database folder."" "
	sLine3 = "A dedicated 'database folder' is fully portable, and as such it may be renamed or moved as desired."
	sLine4 = "NOTE: This Base front-end file (" & sName & ") must remain in this portable folder.  "
	sLine5 = "You may rename this file as desired, but do maintain the .odb extension if visible. Create a desktop shortcut to this file as desired."
	sLine6 = "NOTE: The back-end HSQL data files will be named: " & dbName & ".*  "
	sLine7 = "These files will reside in the ""database"" subfolder."
	If Not FileExists(sPath & "database/" & dbName & ".script") Then MsgBox sLine1 & chr(13)_
		& sPath & chr(13) & chr(13) & sLine2 & sLine3 _
		& chr(13) & chr(13) & sLine4 & sLine5 _
		& chr(13) & chr(13) & sLine6 & sLine7 _
		, 64, "Please Read"
     
  'setup Data Source URL
	sURL_prefix = "jdbc:hsqldb:"
	sURL_args = ";default_schema=true;shutdown=true;hsqldb.default_table_type=cached;get_column_name=false"
	sURL = sURL_prefix & "file:///" & sPath & "database/" & dbName & sURL_args
	ThisDatabaseDocument.DataSource.URL = sURL
	ThisDatabaseDocument.DataSource.Settings.JavaDriverClass = "org.hsqldb.jdbcDriver"
'	ThisDatabaseDocument.DataSource.User = "SA"
'Carrega o forms Inicial
	Dim Control as Object
	Control = ThisDatabaseDocument.CurrentController
	If Not Control.IsConnected Then	Control.Connect
	ThisDatabaseDocument.FormDocuments.GetByName("fINICIO").Open
'Fim do carregamento do forms Inicial
	Exit Sub
  ErrorHandler: 
	MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")", 16, "Setup: macro code error"
End Sub
Ahora sólo falta la macro para actualizar el formulario "fMOVIMIENTO" con el "ID"
Por lo demás, hasta ver está funcionando en la mayor!
Última edición por joaofmateus el Mié Dic 20, 2017 4:27 pm, editado 2 veces en total.
OpenOffice 4.1.6
Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Convertir un proyecto de Base a multi-Ulizador

Mensaje por mauricio »

Por favor, manten el tema de tu hilo inicial, si es otro tema, abre otro hilo, y por favor, NO uses solo mayúsculas. Gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder