Delphi/Access (BDE)

Delphi

22/04/2004

Estou precisando desenvolver uma aplicação Delphi/Access (BDE), mas dá erro na hora de criar um alias usando como Database Driver Name, o MSACCESS. Estou definindo corretamente o caminho do mdb no Database Name, mas qd verifico se esse alias está funcionando ou não, pelo Database Login, dá esse erro:

Cannot load an IDAPI service library.
File: MSJT3032.DLL
Alias: AliasSCPesq

Alguém pode dar 1 help?


D4rk Schn31d3r

D4rk Schn31d3r

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

22/04/2004

Colega,

Em qual versão do Access foi desenvolvido o banco?
Os drivers são diferentes para 95, 97 e 2000... e o pior : a BDE não dah suporte à bancos Access 2000...
Já que vc está iniciando o desenvolvimento agora, por que não usa ADO ao invés da BDE... apenas uma sugestão...

T+


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Valeu pela dica sobre o ADO, mas é q já programo ha um bom tempo usanso o BDE com SQL Server, eu não queria mudar muito minha forma de programar, ainda mais q essa vai ser minha única aplicação em Access, portanto ... . De qq forma, tem certeza q o BDE não dá suporte mesmo ao Access 2000? Se for o caso, vou ter q pegar o Office 97 com alguém emprestado.


GOSTEI 0
Vinicius2k

Vinicius2k

22/04/2004

Colega,

A não ser que exista algum ´macete´ de configuração q eu desconheça, pelo que sei (e não é muito) a BDE não suporta o Access 2000... infelizmente...
T+


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Ok, vou instalar o Access 97 segunda-feira aqui no trabalho (pq no Rio amanhã é feriado), e qq coisa volto aqui pra tirar alguma dúvida. Valeu.


GOSTEI 0
Tecnico_julio

Tecnico_julio

22/04/2004

Caro colega,
para usar um banco de dados ACCESS no DELPHI você deverá o componente ADO e ao invés de usar o BDE você deve usar o ODBC.


GOSTEI 0
Okama

Okama

22/04/2004

Use o ADO com Access diretamente não precisa de ODBC, use um provedor Microsoft.Jet.OLEDB.4.0 e defina a localização do .mdb


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

E ae, blz? Resolvi fazer essa aplicação em ADO mesmo, ao invés do BDE e estou com uma dúvida: como consigo passar, 1 valor para o parâmetro do objeto ADODataSet? Com BDE fazia assim:


frmDm.qryTeste.ParamByName(´prmIDTeste´).AsInteger := gNum; 



GOSTEI 0
Vinicius2k

Vinicius2k

22/04/2004

Sabia escolha...
frmDm.ADOQRYTeste.Parameters.ParamByName(´prmIDTeste´).Value := gNum;


T+


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Valeu, funcionou! Outra coisa, tem como definir em qual linha escrever, dentro do CommandText Editor do ADODataSet, em tempo de execução? No BDE, fazia assim por exemplo:

 
Procedure TfrmConsPesq.dbgConsPesqTitleClick(Column: TColumn);
   Begin
      frmDm.qryConsPesq.Close;
      frmDm.qryConsPesq.SQL[frmDm.qryConsPesq.SQL.Count -1] := ´ORDER BY ´ + Column.FieldName;
      frmDm.qryConsPesq.Open;
   End;



GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Updating, ...


GOSTEI 0
Vinicius2k

Vinicius2k

22/04/2004

Colega,

O CommandText eh uma WideString e não uma TStringList como na TQuery...
Vc precisa fechar o DataSet e passar a string toda novamente...

T+


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Valeu, já desconfiava disso, hehehe. :)


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Ihhh, tá dando esse erro: [Error] ConsPesq.pas(117): String literals may have at most 255 elements! O problema é q meu código SQL tem mais de 255 caracteres, e agora?!?

frmDm.adodsConsPesq.CommandText := ´SELECT Pesq.ID_Pesq, Pesq.Num_Prot, Pesq.Tit_Proj, Inst.Inst, Pesquis.Pesquis FROM Pesq, Inst, Pesquis WHERE Inst.ID_Inst = Pesq.ID_Inst AND Pesquis.ID_Pesquis = Pesq.ID_Pesquis AND Pesq.Num_Prot LIKE :prmNumProt AND Pesq.Tit_Proj LIKE :prmTitProj AND Inst.Inst LIKE :prmInst AND Pesquis.Pesquis LIKE :prmPesquis ORDER BY ´ + Column.FieldName;



GOSTEI 0
Vinicius2k

Vinicius2k

22/04/2004

D4rk Schn31d3r,

:shock:
Isso eh no mínimo estranho, jah q uma WideString deveria aceitar 2^30 caracteres... eu consigo simular o erro e, falando honestamente, não sei a causa...
Bem, mas acho q no seu caso seria mais conveniente vc usar uma ADOQuery... ateh pq vc teria a propriedade SQL como TStringList e resolveria também seu problema anterior (com a mudança apenas da última linha da instrução)...

T+


GOSTEI 0
Anjocurioso

Anjocurioso

22/04/2004

eu sei que ja é um pouco tarde, mas voce poderia ter criado um alias no ODBC do windows e o alias ja seria automaticamente exportado para o BDE e voce poderia fazer o acesso pelos componentes do BDE normalmente.... só uma sugestão ok??


Atenciosamente


Ellerson


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Estranho mesmo Vinicius, siniiiistro!, ..., ae, de qq forma, agora estou usando ADOquery e tudo estava indo muito bem, até eu não conseguir mudar um parâmetro para ftDate, o Delphi insiste em marcar ftDateTime, e para o q quero fazer, q é pesquisar por data, ftDateTime não funciona direito, ..., vc sabe o q pode estar acontecendo?


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Updating, ...


GOSTEI 0
D4rk Schn31d3r

D4rk Schn31d3r

22/04/2004

Updating, ...


GOSTEI 0
POSTAR