数据库密码验证求解 (0分)

  • 主题发起人 主题发起人 topdelphi
  • 开始时间 开始时间
T

topdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我下面的数据库密码语句,那个地方出错了,验证的时候出错了。
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM A WHERE name='''+TRIM(EDIT1.Text)+
'AND PWD='''+TRIM(EDIT2.Text ));
QUERY1.Open;
showmessage('密码正确');
IF QUERY1.IsEmpty THEN
BEGIN
SHOWMESSAGE('密码不正确');
edit1.SetFocus;
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM A WHERE name='"'+TRIM(EDIT1.Text)+
'" AND PWD='"'+TRIM(EDIT2.Text ))+'";';
QUERY1.Open;

IF QUERY1.recordcount=0 THEN
BEGIN
SHOWMESSAGE('密码不正确');
edit1.SetFocus;
end else showmessage('密码正确');
end;
 
出错原因就是你的SQL语句组合的有点问题。
你在OPEN之前可以先找个变量来显示一下SQL.TEXT,就能看出问题的原因所在了。
ysai的写法可能还是有点问题,他使用的引号好象不太对。
 
代码:
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from a where name = '''
      + Trim(Edit1.Text) + ''' and pwd = ''' + Trim(Edit2.Text) + #39);
    Open;
  end;
  if Query.IsEmpty then
  begin
    ShowMessage('密码不正确');
    edit1.SetFocus;
  end
  else
    ShowMessage('密码正确');
 
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM A WHERE name="'+TRIM(EDIT1.Text)+'" AND PWD="'+TRIM(EDIT2.Text )+'"');
QUERY1.Open;

IF QUERY1.IsEmpty THEN
BEGIN
SHOWMESSAGE('密码不正确');
edit1.SetFocus;
end
else
showmessage('密码正确');
end;
 
TO:armyjiang
没试过怎么知道不对?我就这样写的
 
差不多了,
这只是小问题吗

只要能得到结果就行
 
Access 可以使用双引号"
SQL Server 中只能使用单引号'
 
后退
顶部