Olá a todos! Uso o LO 4.4.7.2, com banco HSQLDB externo, em Ubuntu 12.04.
Preciso rodar uma consulta contra este banco a partir de um módulo BASIC. Eu consegui escrever a consulta apelando para este código:
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("DVMan")
If Not DataSource.IsPasswordRequired Then
Connection = DataSource.GetConnection("","")
Else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
End If
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT * FROM TB_DBT_DBTYPE")
If Not IsNull(ResultSet) Then
While ResultSet.next
MsgBox ResultSet.getString(1) +" - " + ResultSet.getString(2)
Wend
End If
Apesar de funcionar, ele depende de o banco de dados estar “registrado” no LO. Pergunta: há como estabelecer uma conexão com um banco, e depois rodar SQL contra ele, sem que ele esteja registrado no LibreOffice?
Preciso disso porque não quero depender que o cliente no qual o Base vai ser executado dependa de registrar o banco.
Grato pela atenção,
Fábio