Call us! 512-349-0334 or (877) INDUSOFT

Solução de Problemas de Banco de Dados no InduSoft Web Studio

A Interface de banco de dados do InduSoft Web Studio fornece ferramentas poderosas que irão ajudá-los à identificar problemas de configuração com bancos de dados. Se você está tendo problemas de interface com um banco de dados, você deve primeiro ativar as mensagens de banco de dados na Janela de Logs. Você pode ativá-las com os seguintes passos:

1. No ambiente de Desenvolvimento do InduSoft Web Studio, certifique-se de mostrar a janela de saída (caixa de seleção janela de saída na guia Exibir da faixa de opções).

2. Clique com o botão direito na Janela de Saída (normalmente localizado no canto inferior direito do ambiente de desenvolvimento), e clique em Configurações no menu de atalho:

1

3. Na caixa de diálogo em Configurações de Log, marque a opção Mensagens de Banco de Dados:

2

Após ativar essa opção, a janela de saída irá exibir mensagens de erro relacionadas ao banco de dados. A seção FAQ abaixo lista alguns erros comuns que você pode ver na janela de saída.

PERGUNTAS GERAIS 

P: Eu configurei meu banco de dados, mas os módulos Runtime (Alarme, Tendência e Eventos) não estão sendo salvos no banco de dados. Eu só vejo a seguinte mensagem de erro na janela de saída: Database: Error: Error to add new register[CMD_ADD].(Banco de dados: Erro: Erro ao adicionar novo registo [CMD_ADD]. )

R: A maioria dos erros de banco de dados na Janela Saída serão seguidos por informações adicionais, como o comando SQL que está sendo executado,  a string de conexão e o nome da tabela. As mensagens de erro, tais como os descritos acima, geralmente  ocorrerão apósuma mensagem de forma mais detalhada. Por exemplo, se sua Tarefa Tendência falhar para adicionar um registro no banco de dados, pois o cabo é desconectado, você deve primeiro receber um erro de rede; se a tarefa tentar adicionar mais registos antes do tempo especificado no campo Intervalo de Repetição, ele irá exibir apenas Banco de dados Database: Error: Error to add new register[CMD_ADD].(Erro: Erro ao adicionar novo registro [CMD_ADD]). Se você acha que sua configuração está correta, e você deseja ignorar este tipo de problema, reduza o Intervalo de Repetição. Então você deve ver informações mais detalhadas.

P: Quando eu tento acessar o servidor de banco de dados MySQL, recebo a seguinte mensagem: Object is not set to an instance of an object.(Objeto não está definido para uma instância de um objeto)

R: Este problema foi detectado sob as seguintes condições:
• Um erro conhecido no MySQL Connector / Net V6.1.2 não especificaria corretamente o charset; e
• A tabela de banco de dados que você está tentando acessar não existe.
Para resolver este problema, certifique-se que você está usando o MySQL Connector / Net V6.2.0 e que a tabela que você está acessando existe no banco de dados.

P: Porque a Interface de Banco de Dados automaticamente fecha algumas conexões?

R: Por padrão, a Interface de Banco de Dados pode ter um máximo de 1000 conexões. Quando este máximo for excedido, a conexão mais antiga é automaticamente fechada para permitir a nova conexão, e a Janela de Saída exibe uma mensagem estendida descrevendo qual conexão foi encerrada e qual foi o último comando executado. Para aumentar o número máximo de conexões de banco de dados, abra o arquivo de projeto (NomeDoProjeto.app) em um editor de texto e altere a seguinte configuração: [StDB], MaxConnections = número de conexões. Tenha em mente que o aumento do número máximo de conexões pode diminuir o desempenho do projeto.

P: Eu configurei minha string de conexão usando o navegador e  a Janela de Propriedades  Data Link. Quando clico no botão de teste, ele diz que “Test Connection Succeded (“Teste bem-sucedido”). No entanto, quando eu executo o meu projeto, a Interface de Banco de Dados exibe mensagens de erro, e eu não consigo salvar dados.

R: A Janela de Propriedades Data Link usa OLE DB para interface com o banco de dados. A Interface de Banco de Dados do IWS utiliza ADO.NET; portanto, você pode ter o provedor OLE DB em sua máquina e estar faltando o provedor ADO.NET. Também é possível que você esteja usando um provedor ADO.NET que não está listado no arquivo StADOSvr.ini.

P: Por que, quando eu atualizo as informações em uma única linha no objeto Grid, é alterada mais de uma linha no meu banco de dados?

R: O objeto Grid emite um comando de atualização no banco de dados usando os valores em todas as colunas para a linha específica que você está tentando atualizar. Se você tem linhas com valores duplicados, você pode ver este problema. Se a tabela tem uma chave primária ou qualquer outro campo exclusivo que você não deseja exibir no objeto grade, você pode adicioná-lo às colunas, mas especificar a largura 0. Isto irá corrigir o problema.

P: Por que eu tenho que usar uma coluna separada para armazenar os milisegundos em meu banco de dados?

R: Alguns bancos de dados não suportam milisegundos no campo Time Stamp. A Interface de Banco de Dados do IWS, por padrão, exige outra coluna para os milissegundos. Se o seu banco de dados pode lidar com milisegundos, ou se você não quiser gravar os milésimos de segundo, você pode alterar o comportamento padrão nas configurações avançadas. Nota-se que alguns bancos de dados são capazes de armazenar milisegundos, mas eles têm menor precisão. Se você misturar diferentes bancos de dados com diferentes precisões em modo redundante, você pode ter problemas de sincronização.

P: Meu projeto funciona bem quando executo em modo de simulação. Mas quando eu envio para o dispositivo com Windows Embedded, ele não pode se comunicar com o meu banco de dados.

R: Pode ser que o seu dispositivo com Windows Embedded não tem o Framework .Net ou que ele não tem o provedor que você está usando. Tente usar a gateway remotamente.

P: Quando eu tento conectar ao banco de dados, por que eu recebo a mensagem, Error to create connection class? (Erro para criar classe de conexão)

R: O Provedor .Net que você está tentando usar não está instalado em sua máquina. Esta mensagem de erro é geralmente seguida pelo nome do provedor; se você estiver usando o banco de dados Sybase, por exemplo, a mensagem é seguida por [iAnywhere.Data.AsaClient.AsaConnection]. O Provedor é o iAnywhere.Data.AsaClient. Você pode verificar se o provedor está instalado em sua máquina, indo para o Painel de Controle> Ferramentas Administrativas> Configuração de Microsoft .Net Framework xx. O fornecedor deve ser listado no AssemblyCache.

P: E se eu tiver o assembly do provedor (geralmente um arquivo .dll), mas ele não está listado no AssemblyCache?

R: Se o seu assembly tem um nome forte, você pode registrá-lo no cache de assembly usando o programa gcautil. Ou ele deve funcionar se você copiar o seu assembly para a mesma pasta do StADOSvr.exe (geralmente no diretório[…]\v7.1 InduSoft Web Studio\Bin).

P: Eu não consigo acessar minha tabela de um objeto Grid, quando eu uso uma condição específica. Mas se nenhuma condição for aplicada, ele funciona bem. Por que isso acontece?

R: Você deve verificar os seguintes itens:
1. Siga os passos de resolução de problemas, e procure por mensagens de erro no log. Uma mensagem de erro pode lhe dizer se você cometeu um erro, como entrar com um nome de coluna errada ou especificar um formato de dados inválido.
2. Alguns bancos de dados têm problemas ao usar palavras reservadas como nomes de coluna. Portanto, você deve evitar o uso de nomes de coluna, tais como Time, Date, Numeric, etc.
3. Se o seu nome da coluna começa com AND ou OR (por exemplo, ORange), digite o nome entre colchetes. Por exemplo, em vez de orange = 10, digite [orange] = 10.
4. Se você estiver usando SQL Server CE, você pode ter alguns problemas ao consultar campos string. Foi identificado que os filtros não funcionam com tipos de dados NCHAR; no entanto, eles funcionam se você declarar esses campos como NVARCHAR (<Número>). Você pode tentar recriar a sua tabela usando este tipo de dados. Um exemplo de um comando que cria uma tabela com strings que podem ser consultadas é apresentada abaixo:
CREATE TABLE tabela1 (Nome nvarchar (128), Idade Numeric, Sexo NVARCHAR (1))

MYSQL 

P: Quando eu tento acessar o banco de dados da minha máquina local, funciona bem, mas quando eu movo o meu projeto  para uma máquina remota, ele diz Access Denied  (Acesso Negado).

R: Cada usuário em um banco de dados MySQL tem uma propriedade associada a ele que indica o computador a partir do qual pode se obter acesso ao banco de dados. Por padrão, essa propriedade é definida como localhost, assim você só será capaz de acessar o banco de dados se você estiver acessando a partir do computador local. Você deve ler o manual do MySQL para obter informações sobre como alterar essa configuração.

P: Às vezes, quando eu tento sincronizar um banco de dados MySQL remoto com um banco de dados MySQL local, ou se eu tento usar redundância na aplicação, uma conexão com a interface do ADO.NET é aberta e nunca fechada. 

R: Vá para a caixa de diálogo da configuração de banco de dados e desmarque a opção “Criar Automaticamente”.

SYBASE

P: Eu configurei meu banco de dados Sybase utilizando o botão Procurar. Quando clico no botão de teste, o teste foi bem-sucedido, mas quando tento executar o meu projeto, eu recebo o seguinte erro: Database: Error: Parse error: DSN ‘MyDatabase’ does not exist. (Banco de dados: Erro: Erro de análise: ‘MyDatabase’ DSN não existe). O que estou fazendo de errado?

R: Por favor, consulte o Apêndice F de Banco de Dados – Usando Sybase para obter mais informações sobre este problema.

P: Por que, quando eu tento conectar ao banco de dados Sybase, estou recebendo o erro Error to create connection class [iAnywhere.Data.AsaClient.AsaConnection]  (Erro  para criar classe de conexão [iAnywhere.Data.AsaClient.AsaConnection])?

R: Você não tem o provedor ADO.NET instalado no seu computador. O programa de configuração do banco de dados tem uma opção para instalar o provedor. Volte a executar o programa de instalação e certifique-se de verificar essa opção.

SQL Server CE

P: Porque a gateway mostra TypeLoad failure quando tento acessar meu banco de dados SQL Server CE?

R: Este problema geralmente acontece quando você não tem o SQL Server Provider .NET CE instalado no seu dispositivo CE.

P: Por que estou recebendo a mensagem de erro, There is a file sharing violation. A different process might be using the file  (Há uma violação de compartilhamento de arquivos. Um processo diferente pode estar usando o arquivo)?

R: Você tem outro programa com o banco de dados SQL Server CE aberto. Por exemplo, isto irá acontecer se você estiver usando o software de configuração do SQL Server CE.

Comments are closed.