Delphi登录系统程序无法执行,数据库问题?

来源:百度知道 编辑:UC知道 时间:2024/09/21 17:59:40
控件主要是有2个EDIT,1个DATASOURCE,1个query.登陆窗口的设计程序为:
unit login;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons,main, DB, DBTables;

type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
DataSource1: TDataSource;
Query1: TQuery;
Button1: TButton;
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

query1.ParamByName('name').Value :=edit1.Text ;
query1.SQL.Add('select passwd from clients where name=:name');
把这两句位置换一下吧,改为
query1.SQL.Add('select passwd from clients where name=:name');
query1.ParamByName('name').Value := edit1.Text;
或者改为
query1.SQL.Text := Format('select passwd from clients where name = %s', [QuotedStr(Edit1.Text)]);

你把这两句:query1.ParamByName('name').Value :=edit1.Text ;
query1.SQL.Add('select passwd from clients where name=:name');
改成:query1.sql.add('select passwd from clients where name:="‘+edit1.text+ '");试试

建议用ADO,BED已经逐渐淘汰了

query1.Close ;
query1.ParamByName('name').Value :=edit1.Text ;
query1.SQL.Add('select passwd from clients where name=:name');
query1.Open;
写反了