Delphi/Access (BDE)
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?
Cannot load an IDAPI service library.
File: MSJT3032.DLL
Alias: AliasSCPesq
Alguém pode dar 1 help?
D4rk Schn31d3r
Curtidas 0
Respostas
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+
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
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
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+
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
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
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.
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
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
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
22/04/2004
Sabia escolha...
T+
frmDm.ADOQRYTeste.Parameters.ParamByName(´prmIDTeste´).Value := gNum;
T+
GOSTEI 0
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
22/04/2004
Updating, ...
GOSTEI 0
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+
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
22/04/2004
Valeu, já desconfiava disso, hehehe. :)
GOSTEI 0
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
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+
: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
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
Atenciosamente
Ellerson
GOSTEI 0
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
22/04/2004
Updating, ...
GOSTEI 0
D4rk Schn31d3r
22/04/2004
Updating, ...
GOSTEI 0