Erro ao alterar SQL do IBQuery via código
Como sou iniciante no Interbase, até então trabalhava com Access, me deparei com meu primeiro problema, talves alguem possa me ajudar.
Utilizo Delphi 6, tenho em meu Data Module (DM):
IBDataBase,
IBTransaction e
IBQuery,
todos componentes de acesso me parecem estar devidamente configurado, pleo menos nenhum erro é indicado, porém, ao chamar a função abaixo ocorre o seguinte erro logo na 1ª linha:
[Project Cliente.exe raised exception class EAccessViolation with message´Access violation at address 004939B4 in module ´Cliente.exe´ Read of address 00000060´. Process stoped... ]
function TFLogin.ValidaLogin(Login: string; Senha: string): boolean;
begin
with DM.IBQLogi do
begin
Active := False;
SQL.Clear;
SQL.Add(´SELECT TBUSUARIO.LOGIUSUA, TBUSUARIO.SENHUSUA´);
SQL.Add(´FROM TBUSUARIO´);
SQL.Add(´WHERE (TBUSUARIO.LOGIUSUA = ´´+ Login +´´) and (TBUSUARIO.SENHUSUA = ´´+ Senha +´´);´);
Active := True;
if DM.IBQLogi.RecordCount > 0 then
Result := True else
Result := False;
Active := False;
end;
end;
Talvez alguma propriedade de um dos componentes de acesso, ou a falta de algum comando, só sei que assim funciona no acesso a uma base Access, qual a diferença? o q está errado?
Agradeço a quem possa colaborar.
Utilizo Delphi 6, tenho em meu Data Module (DM):
IBDataBase,
IBTransaction e
IBQuery,
todos componentes de acesso me parecem estar devidamente configurado, pleo menos nenhum erro é indicado, porém, ao chamar a função abaixo ocorre o seguinte erro logo na 1ª linha:
[Project Cliente.exe raised exception class EAccessViolation with message´Access violation at address 004939B4 in module ´Cliente.exe´ Read of address 00000060´. Process stoped... ]
function TFLogin.ValidaLogin(Login: string; Senha: string): boolean;
begin
with DM.IBQLogi do
begin
Active := False;
SQL.Clear;
SQL.Add(´SELECT TBUSUARIO.LOGIUSUA, TBUSUARIO.SENHUSUA´);
SQL.Add(´FROM TBUSUARIO´);
SQL.Add(´WHERE (TBUSUARIO.LOGIUSUA = ´´+ Login +´´) and (TBUSUARIO.SENHUSUA = ´´+ Senha +´´);´);
Active := True;
if DM.IBQLogi.RecordCount > 0 then
Result := True else
Result := False;
Active := False;
end;
end;
Talvez alguma propriedade de um dos componentes de acesso, ou a falta de algum comando, só sei que assim funciona no acesso a uma base Access, qual a diferença? o q está errado?
Agradeço a quem possa colaborar.
Carvajal
Curtidas 0
Respostas
Carvajal
21/05/2004
Analizando melhor o problema, percebi que ao xcutar o programa, o IBDataBase se desconecta, e qdo alguma chamada ao banco ocorre, gera erro, mesmo q seja uma tentativa de reconetar.
espero q alguem possa me ajudar
Valeu
espero q alguem possa me ajudar
Valeu
GOSTEI 0
Afarias
21/05/2004
Interessante... admitindo q o Interbase esteja instalado corretamente na máquina, poderia dizer q vc está tentando acessar um bojeto não instanciado.
Em que linha do código o erro ocorre exatamente??
T+
Em que linha do código o erro ocorre exatamente??
T+
GOSTEI 0
Carvajal
21/05/2004
Como vc imaginava, o Data Mosule não estava sendo instanciado quando eram executados as chamadas ao banco.
Muito obrigado pela ajuda e atenção
Carlinhos
Muito obrigado pela ajuda e atenção
Carlinhos
GOSTEI 0