Ir para conteúdo
Fórum Script Brasil
  • 0

Firebird e conexão ADO: erro ao criar Form com tabela ativada


Duduh_Capixaba

Pergunta

Olá amigos. Ainda fazendo alguns testes de conexão com componentes diferentes, me deparei com o seguinte problema...

Estou tentando fazer uma conexão de uma base Firebird pelos componentes da palheta ADO. Primeiro instalei os drivers ODBC do Firebird e criei um Alias chamado "Teste" na fonte de dados ODBC do Windows.

- adicionei um ADOConnection e setei a fonte de dados Teste. Usuário e senha digitados corretamente;

- adicionei um ADOTable, relacionei com o ADOConnection e setei uma tabela;

- adicionei um DataSource e relacionei com o ADOTable;

- adicionei um DbGrid e relacionei com o DataSource.

Para testar a conexão, setei a propriedade Active do ADOTable para True. Os dados foram mostrados corretamente no DbGrid. Mas quando executo a aplicação, recebo a seguinte mensagem de erro: "Project Teste.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process stopped. Use Step or Run to continue." Este erro acontece na criação do Form, no código "Application.CreateForm(TForm1, Form1)". Ele só acontece se eu tentar rodar o projeto com a tabela ativada, ou se eu tentar ativá-la com o Form já criado.

Eu consigo abrir essa mesma base de dados com outras conexões normalmente. Abraço!

Editado por Duduh_Capixaba
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
recebo a seguinte mensagem de erro: "Project Teste.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process stopped. Use Step or Run to continue." Este erro acontece na criação do Form, no código "Application.CreateForm(TForm1, Form1)". Ele só acontece se eu tentar rodar o projeto com a tabela ativada, ou se eu tentar ativá-la com o Form já criado.

Project Teste.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process stopped.

Projeto Teste.exe elevou classe de exceção EVariantTypeCastError com mensagem ' não pôde converter variante de tipo (Nulo) em tipo (String) '. Processo parou. '

O erro já diz tudo

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Jhonas! Cara, eu entendi a mensagem de erro. O que eu não sei é de onde ele está tirando esse valor nulo. Valor nulo de onde, de quem?! De um campo da tabela? E se for, ele está tentando converter o quê???

O que eu não estou conseguindo entender é que sem rodar o projeto, os dados são mostrados no Grid sem erros. Bem estranho isso!

Link para o comentário
Compartilhar em outros sites

  • 0
Os dados foram mostrados corretamente no DbGrid.
até aqui tudo normal.

Mas quando executo a aplicação, recebo a seguinte mensagem de erro: "Project Teste.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process stopped. Use Step or Run to continue." Este erro acontece na criação do Form, no código "Application.CreateForm(TForm1, Form1)".
Isto sugere que possa estar sendo manipulada alguma informação do dataset quando a aplicação é iniciada. Voce experimentou seguir a orientação da mensagem e seguir teclando F7 para verificar onde exatamente o erro ocorreu?

Caso seja desviado para o código de algum componente, você pode visualizar a pilha de chamadas a procedimentos (View->Debug Windows->Call Stack) e achar em que ponto do seu programa o evento que gerou o erro foi chamado.

Ele só acontece se eu tentar rodar o projeto com a tabela ativada, ou se eu tentar ativá-la com o Form já criado.
São justamente momentos em que qualquer codificação que você possa ter implementado, entrarão em ação.

Afinal, este seu programa teste de conexão ADO tem algum código implementado?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Micheus! Esse projeto não tem uma linha de comando sequer. Eu só estava testando como conectar uma base Firebird por uma conexão ADO no Delphi, pois eu já trabalhava com ADO e Firebird no VB.

A mensagem de erro aparece quando eu clico F7 na inicialização do único Form do projeto:

Project1:

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1); >> erro aqui!
  Application.Run;
end.

Se eu clico no F7, F8 ou F9 logo após a mensagem, o programa continua executando normalmente. O Grid traz os dados certinhos sem problemas, mas eu só gostaria de entender o motivo desse erro. Será que algum de vocês poderia fazer esse teste aí?! É só instalar o Firebird ODBC Drivers 1.2 e criar um Alias na fonte de dados ODBC do Windows.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...