Delphi com Mysql ERRO
procedure TForm1.Button1Click(Sender: TObject);
begin
With ZQuery1 do
begin
Button1.Enabled:=False;
SQL.Clear;
SQL.Text:= SELECT login,senha FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + ;
Open;
If ZQuery1.IsEmpty then
begin
ShowMessage(Senha errada!);
Edit2.Text:=;
Edit2.SetFocus;
Button1.Enabled:=True;
end else
begin
SQL.Clear;
SQL.Text:= SELECT login,senha,credito FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + AND credito>0 ;
Open;
If ZQuery1.IsEmpty then
begin
ShowMessage(Sem creditos);
Form1.Close;
end else
begin
SQL.Clear;
SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+Edit1.Text+;
Open;
Showmessage(Login efeutado com sucesso!);
end;
end;
end;
end;
Componente: Zeos
Delphi 7
Alguem poderia me dizer porque esse erro esta dando:
Can not open a Resultset.
Ele desconta 1 credito no banco de dados se o login tiver creditos e existir, mais não mostra a mensagem de Login efetuado com sucesso.
begin
With ZQuery1 do
begin
Button1.Enabled:=False;
SQL.Clear;
SQL.Text:= SELECT login,senha FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + ;
Open;
If ZQuery1.IsEmpty then
begin
ShowMessage(Senha errada!);
Edit2.Text:=;
Edit2.SetFocus;
Button1.Enabled:=True;
end else
begin
SQL.Clear;
SQL.Text:= SELECT login,senha,credito FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + AND credito>0 ;
Open;
If ZQuery1.IsEmpty then
begin
ShowMessage(Sem creditos);
Form1.Close;
end else
begin
SQL.Clear;
SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+Edit1.Text+;
Open;
Showmessage(Login efeutado com sucesso!);
end;
end;
end;
end;
Componente: Zeos
Delphi 7
Alguem poderia me dizer porque esse erro esta dando:
Can not open a Resultset.
Ele desconta 1 credito no banco de dados se o login tiver creditos e existir, mais não mostra a mensagem de Login efetuado com sucesso.
Richard Alexander
Curtidas 0
Respostas
Jeferson Zonta
13/12/2011
Bom, tenta antes de tds os SQL.Clear; colocar SQL.close;
Att.
Att.
GOSTEI 0
César
13/12/2011
Richard eu não uso o zeos mas acredito que quando vc quer executar um update, insert ao invés de Open, acho que deve existir este método nestes componentes, pelo menos no dbexpress é assim, testa ai.
Abraços
begin SQL.Clear; SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+QuotedStr(Edit1.Text); //Open; ExecSql; Showmessage(Login efeutado com sucesso!); end;
Abraços
GOSTEI 0
Richard Alexander
13/12/2011
César,
Era isso mesmo, o comando OPEN; não funcionava, agora já entendi por que:
Meu raciocinio:
Open : Busca
ExecSql : Alteração
Mais tambem não deixei de colocar o Close; que o amigo Jeferson Zonta citou, obrigado a todos.
Era isso mesmo, o comando OPEN; não funcionava, agora já entendi por que:
Meu raciocinio:
Open : Busca
ExecSql : Alteração
Mais tambem não deixei de colocar o Close; que o amigo Jeferson Zonta citou, obrigado a todos.
GOSTEI 0
Richard Alexander
13/12/2011
Alguem poderia me diz como faço para mostrar numa Label o numero de Creditos?
GOSTEI 0
Jonathan Campos
13/12/2011
Tenta algo como:
With ZQuery1 do begin Button1.Enabled:=False; SQL.Clear; SQL.Text:= SELECT login,senha FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + ; Open; If ZQuery1.IsEmpty then begin ShowMessage(Senha errada!); Edit2.Text:=; Edit2.SetFocus; Button1.Enabled:=True; end else begin SQL.Clear; SQL.Text:= SELECT login,senha,credito FROM usuarios WHERE login=+ Edit1.Text + AND senha=+ Edit2.Text + AND credito>0 ; Open; If ZQuery1.IsEmpty then begin ShowMessage(Sem creditos); Form1.Close; end else begin SQL.Clear; SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+Edit1.Text+; Open; Showmessage(Login efeutado com sucesso!); end; end; end; end; label1.Caption:= ZQuery1.FieldByName(CREDITO).AsString;
GOSTEI 0
Richard Alexander
13/12/2011
Testei o que o amigo jhow citou, mais deu um erro e não sei resolver:
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label2.Caption:= ZQuery1.FieldByName(IntToStr(data)).AsString;
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label2.Caption:= ZQuery1.FieldByName(IntToStr(data)).AsString;
GOSTEI 0
Richard Alexander
13/12/2011
Testei o que o amigo jhow citou, mais deu um erro e não sei resolver:
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label1.Caption:= ZQuery1.FieldByName(IntToStr(CREDITOS)).AsString;
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label1.Caption:= ZQuery1.FieldByName(IntToStr(CREDITOS)).AsString;
GOSTEI 0
Jonathan Campos
13/12/2011
Testei o que o amigo jhow citou, mais deu um erro e não sei resolver:
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label1.Caption:= ZQuery1.FieldByName(IntToStr(CREDITOS)).AsString;
ZQuery1: Field 0 not found.
Criei uma variavel chamada data do tipo integer o codigo ta assim:
label1.Caption:= ZQuery1.FieldByName(IntToStr(CREDITOS)).AsString;
O campo em ZQuery1.FieldByName(CAMPO).AsString; deve ser o mesmo que vc está trazendo da sua base de dados portanto se o nome do campo no seu banco de dados for CAMPO1 ficará ZQuery1.FieldByName(CAMPO1).AsString; .
GOSTEI 0
Richard Alexander
13/12/2011
No caso eu botei:
Close;
SQL.Clear;
SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+Edit1.Text+;
ExecSQL;
label2.Caption:= FieldByName(CREDITOS).AsString;
Mais da um erro ao executar o programa, uso o Zeos:
ZQuery1: Field 0 not found.
E tem outra, como faço pra o componente não mostrar os erros? Porque uma vez eu troquei a senha do banco de dados e no erro saiu assim:
Não foi possivel conectar-se á MEU_NOME_DE_USUARIO por tal motivo.
É realmente triste ):
Close;
SQL.Clear;
SQL.Text:=UPDATE usuarios SET creditos=creditos-1 WHERE login=+Edit1.Text+;
ExecSQL;
label2.Caption:= FieldByName(CREDITOS).AsString;
Mais da um erro ao executar o programa, uso o Zeos:
ZQuery1: Field 0 not found.
E tem outra, como faço pra o componente não mostrar os erros? Porque uma vez eu troquei a senha do banco de dados e no erro saiu assim:
Não foi possivel conectar-se á MEU_NOME_DE_USUARIO por tal motivo.
É realmente triste ):
GOSTEI 0
Wilson Junior
13/12/2011
Pessoal, peço encarecidamente que para cada assunto criem um tópico, para facilitar a busca para os colegas de fórum.
Agradeço pela compreenssão de todos.
Obrigado.
Agradeço pela compreenssão de todos.
Obrigado.
GOSTEI 0
Richard Alexander
13/12/2011
Então pode fechar. Obrigado a todos.
GOSTEI 0