Estou tentando conectar o LibreOffice Base a um banco de dados MySQL, no phpMyAdmin, com uma conexão JDBC.
A primeira etapa é selecionar qual banco de dados você deseja selecionar:
O segundo passo é selecionar qual conexão:
A terceira etapa é selecionar seu banco de dados:
Quando pressiono 'Klasse testen' (Classe de teste), recebo o seguinte erro: 'com.mysql.jdbc.driver não pode ser carregado'.
Alguém sabe como evitar esse erro?
Você precisa fazer o download e "registrar" o conector JDBC primeiro. Para fazer isso:
Vá para http://dev.mysql.com/downloads/connector/j/ e faça o download do arquivo Zip com o conector JDBC ("Platform-Independent"); Como alternativa, você pode baixar o instalador do MSI; nesse caso, o arquivo jar pode ser encontrado em Program Files (x86)/MySQL/MySQL Connector J/
(assumindo um sistema Win 7 de 64 bits)
Descompacte o arquivo no seu PC local (lembre-se do caminho para o seu conteúdo) ou instale o arquivo MSI como alternativa;
Na estrutura da pasta extraída, há um arquivo "mysql-connector-Java-5.0.8-bin.jar" (o nome depende da versão exata que você baixou)
Execute o LibreOffice (não Base, apenas LO);
Abra o Menu Tools
-> Options
-> LibreOffice
-> Advanced
-> Class Path;
Clique Add Archive;
Selecione o arquivo jar da etapa 1-3 e pressione OK. Agora o Class Path
dialog deve ter a seguinte aparência:
É isso aí. Agora, a LO sabe onde procurar o driver JDBC do MySQL.
BTW, para Mariadb tudo o resto é o mesmo, mas a classe do driver jdbc muda para isso:
org.mariadb.jdbc.Driver
Se você estiver usando o Red Hat como distribuições linux como o Fedora, você pode instalá-lo a partir dos repositórios com yum ou dnf e depois:
Em Base, vá para Ferramentas/Opções/Java, clique em Caminho de classe e selecione /usr/share/Java/mysql-connector-Java.jar no navegador de arquivos.
https://fedoraproject.org/wiki/QA:Testcase_MySQL_or_MariaDB_in_libreoffice-base
Após seguir as instruções acima e conectar-se com êxito ao banco de dados MySQL desejado, descobri que as tabelas contendo 0000-00-00 00:00:00 em um campo DateTime geravam o erro 'Valor 0000-00-00 00:00 : 00 'não pode ser carregado como Java.sql.Timestamp. Encontrar referências para "zeroDateTimeBehavior = convertToNull" como a solução foi fácil; a parte complicada era onde inserir isso no LibreOffice . A resposta rápida: insira-o como parte do campo Nome do banco de dados - para que 'mydatabase' se torne 'mydatabase? ZeroDateTimeBehavior = convertToNull'. Rodando no Linux Mint/Ubuntu com um servidor localhost , isso funcionou maravilhosamente. Trituração de dados feliz!