ERRO - ADO com firebird

02/02/2006

bom amigos é o seguinte ...

estou apenas testando o uso do ADO com o firebird

tenho o seguinte codigo no evento onCreate de meu form ...

  c.ConnectionString:=´Provider=MSDASQL.1;Persist Security Info=False;Data Source=Firebird´;
  c.Connected:= true;
  tb.Connection:= c;
  tb.TableName:= ´TBTESTE´;
  tb.Active:= true;


se eu carregar os fields no componente [b:8a4a6d9efb]tb[/b:8a4a6d9efb], nao da erro nehum ... mas se eu deixar sem nenhum field ele me da o seguinte erro!

´could not convert variant of type (Null) into type (String)´

pq esse erro???
abraçoss


Rafael Gomes

Respostas

02/02/2006

Renato.pavan

Rafael, também utilizo o Ado com firebird, so q utilizom o driver ZStyle - IBFree, e com este nunca tive problema como o descrito por vc, ja q esta testando mesmo, baixe ele e faça o teste
[url]http://www.zstyle.dp.ua/eng/download.htm[/url]
Caso queira tirar alguma duvida pode me add no msn
renatopavan2002@hotmail.com

T+

[]´s

Renato


Responder Citar

02/02/2006

Rafael Gomes

muito obrigado Renato, ja esta adicionado no msn ...
eu vou testar seu driver, mas quero lembrar que estou usando os drivers de acesso disponibilizados pelo site oficial do firebird ...

ninguem saberia me dizer o pq este erro ocorre? fiz uma pesquisa no forum mas nao adiantou muita coisa ...

gostaria de resolver o problema sem mudar drivers de acesso e etc ...
bem pessoal, é isso!!!

conto com a colaboracao dos colegas de forum!!

[]ss


Responder Citar

02/02/2006

Rafael Gomes

olá pessoal, estou apenas postando para comunicar que resolvi o problema que gerou a criacao deste topico, e dizer tbm como resolvi o problema caso alguem tenha as mesmas dificuldades que eu ...

uma das solucoes é a proposta do nosso amigo renato e utilizar o driver oledb disponibilizado no link acima ...

e a segunda, é continuar utilizando odbc e ao inves de utilizar o componente adotable, utilizar quaisquer componentes da paleta ADO, pois o problema esta no componente adotable, com adodataset e adoquery funciona perfeitamente ...

se alguem souber de alguma incompatibilidade do adotable com o firebird poste para o beneficio de todos ...

um grande abraço!!!

Rafael :D


Responder Citar

02/02/2006

Sourcecode

Estranho dar este erro, talvez seja porque você não passou o charset para a conexão, o chato de trabalhar com ADO é isso, às vezes aparecem erros sem sentido, tenta conectar ao banco EMPLOYEE.FDB na pasta examples do firebird e veja se dá o mesmo erro... fiz uma conectionstring para você usar como exemplo:

Provider=MSDASQL.1;Password=masterkey;User ID=SYSDBA;Extended Properties="Driver={Firebird/InterBase(r) driver};Dbname=C:\Arquivos de programas\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB;CHARSET=NONE;Role=NONE"


o adotable funcionou certinho, se continuar aparecendo o erro me passa a extrutura da sua tabela que posso verificar pra você, pode me contactar no msn: sourcecode@terra.com.br entre 18 e 20 h.
Quanto ao driver que nosso amigo indicou não creio que seja uma boa solução, ´OLE DB driver for Interbase/Firebird version 5.0.11, 10.02.2004´, fevereiro de 2004, tá muito desatualizado, pode ocasionar algum problema nas versões acima da 1.03 do firebird, é bem mais seguro usar o driver oficial.


Responder Citar

03/02/2006

Rafael Gomes

olá sourcecode ... estranho mesmo o erro, interessante é que acontece apenas com ADOTable, por isso que eu disse que foi uma falha no componente, e quanto a usar o driver OLEDB creio que seja uma saida, mas assim como voce fiquei com o pé atras!

vou testar sua string de conexao e ver se vai dar algum erro ... e ja adianto a estrutura da minha tabela, nao tem nd demais!!

o sql que gera a tabela é esse aqui

/******************************************************************************/
/****              Generated by IBExpert 03/02/2006 08:31:57               ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES NONE;



/******************************************************************************/
/****                                Tables                                ****/
/******************************************************************************/



CREATE TABLE TBTESTE (
    CODIGO  INTEGER,
    NUMERO  INTEGER,
    NOME    VARCHAR(10)
);




/******************************************************************************/
/****                              Privileges                              ****/
/******************************************************************************/


grande abraço!!


Responder Citar

03/02/2006

Rafael Gomes

o erro persiste com a sua string de conexao ...

Provider=MSDASQL.1;Password=masterkey;User ID=SYSDBA;Extended Properties="Driver={Firebird/InterBase(r) driver};Dbname=127.0.0.1:C:\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB;CHARSET=NONE;Role=NONE"


interessante sourcecode é que eu vi relatos desse problema em varios foruns, e muitos problemas com usuarios de fora do pais ... só que em nenhum eu encontrei uma solucao diferente de ´ADO nao serve para ser utilizado com firebird, pq sempre ocorrem bugs como esse e o desempenho é muito inferior!!!´


Responder Citar

04/02/2006

Rafael Gomes

alguem pode ajudar?


Responder Citar