Controle de Acesso a um Sistema Delphi 7.0 Firebird 1.5
18/02/2006
0
Possuo uma tabela com os seguintes campos:
Em um banco Firebird 1.5 Dialect 3.
Estou tentando utilizar esta tabela como base como controle no meu form de acesso, o código segue abaixo:
Porém ao tentar logar me aparece a seguinte mensagem:
Project SANCP.EXE raised exception EIBInterbaseBaseError with message
´Dinamic SQL Error
SQL Error Code = -206
Column unknowm
FLAVIA (nome do usuário na qual tentei logar)
At line 2, column 17´ Process stoped. Use stop or Run to continue.
O formulário é do tipo: fsStayOnTop
O sistema é feito com formulario MDIForm e MDIChild sendo este o unico fsStayOnTop do sistema.
Alguém poderia me ajudar?
USUARIOS ( ID_USUARIO INTEGER NOT NULL, USUARIO VARCHAR(10) NOT NULL COLLATE PXW_INTL850, SENHA VARCHAR(10) NOT NULL COLLATE PXW_INTL850, NIVEL CHAR(1) NOT NULL COLLATE PXW_INTL850 )
Em um banco Firebird 1.5 Dialect 3.
Estou tentando utilizar esta tabela como base como controle no meu form de acesso, o código segue abaixo:
procedure TFrmLogin.btCancelarClick(Sender: TObject); begin Application.Terminate; end; procedure TFrmLogin.edUsuarioExit(Sender: TObject); begin if (edusuario.Text = ´´) then begin Messagedlg(´Campo em branco, por favor, preencha-o corretamente´,mtWarning,[mbOK],0); edusuario.SetFocus; end; end; procedure TFrmLogin.btLogarClick(Sender: TObject); begin Try DMod.dsUsuar.Close; DMod.dsUsuar.SelectSQL.Clear; DMod.dsUsuar.SelectSQL.Add(´Select * from USUARIOS´); DMod.dsUsuar.SelectSQL.Add(´Where USUARIO = ´+ UpperCase(edUsuario.Text)); DMod.dsUsuar.Open; if (DMod.dsUsuarSENHA.Value = edSenha.Text) and (DMod.dsUsuarUSUARIO.Value = edUsuario.Text) then begin FrmSANCP.sbPrincipal.Panels[0].Text := ´Usuário logado: ´+edUsuario.Text; FrmLogin.Close; end else begin sbLogar.Panels[0].Text := ´Usuário e/ou Senha inexistente no sistema´; edusuario.Clear; edsenha.Clear; edusuario.SetFocus; end; Except begin sbLogar.Panels[0].Text := ´Falha na comunicação com o sistema´; edusuario.Clear; edSenha.Clear; edUsuario.SetFocus; end; end; end; procedure TFrmLogin.FormCreate(Sender: TObject); begin if DMod.Conexao.Connected = false then DMod.Conexao.Connected := true; if DMod.dsUsuar.Active = false then DMod.dsUsuar.Open; end; procedure TFrmLogin.edSenhaExit(Sender: TObject); begin if (edSenha.Text = ´´) then begin Messagedlg(´Campo em branco, por favor, preencha-o corretamente´,mtWarning,[mbOK],0); edSenha.SetFocus; end; end; end.
Porém ao tentar logar me aparece a seguinte mensagem:
Project SANCP.EXE raised exception EIBInterbaseBaseError with message
´Dinamic SQL Error
SQL Error Code = -206
Column unknowm
FLAVIA (nome do usuário na qual tentei logar)
At line 2, column 17´ Process stoped. Use stop or Run to continue.
O formulário é do tipo: fsStayOnTop
O sistema é feito com formulario MDIForm e MDIChild sendo este o unico fsStayOnTop do sistema.
Alguém poderia me ajudar?
Flavinha
Curtir tópico
+ 0
Responder
Posts
18/02/2006
Vinicius2k
Colega,
Altere este trecho:
Para:
A função [b:352f7cec88]QuotedStr[/b:352f7cec88], irá colocar o texto de [i:352f7cec88]edUsuario.Text[/i:352f7cec88] entre aspas. O que é necessário em instruções sem parametros.
T+
Altere este trecho:
... DMod.dsUsuar.SelectSQL.Add(´Select * from USUARIOS´); DMod.dsUsuar.SelectSQL.Add(´Where USUARIO = ´+ UpperCase(edUsuario.Text)); ...
Para:
... DMod.dsUsuar.SelectSQL.Add(´Select * from USUARIOS´); DMod.dsUsuar.SelectSQL.Add(´Where USUARIO = ´+ QuotedStr(UpperCase(edUsuario.Text))); ...
A função [b:352f7cec88]QuotedStr[/b:352f7cec88], irá colocar o texto de [i:352f7cec88]edUsuario.Text[/i:352f7cec88] entre aspas. O que é necessário em instruções sem parametros.
T+
Responder
18/02/2006
Flavinha
Obrigada Vinicius, está rodando perfeitamente agora.
Flavinha
Flavinha
Responder
Clique aqui para fazer login e interagir na Comunidade :)